Telerik Forums
UI for ASP.NET AJAX Forum
9 answers
2.4K+ views
I am getting the following error: "There was a problem extracting DataKeyValues from the DataSource. Please ensure that DataKeyNames are specified correctly and all fields specified exist in the DataSource."

I can bind a dataset to my grid and that displays properly.  I have a master table with one detail table.  When I try to put one of the master table rows in edit via clicking on an edit icon in the row and displaying the details in an edit form template, that's when the exception is thrown.

As you will see the Mastertable datakeynames is CourseId which maps to the element name of the dataset.  Similarly the datakeynames is ChildCourseId for the GridTableView which also maps to the corresponding dataset.

I have looked at the documentation provided by Telerik and I believe I have coded the page correctly, but I am obviously missing something.  Any insight/suggestions would be greatly appreciated.

Below are snippets from the aspx page, followed by the code behind and the methods used to build the dataset that is bound to the grid.

Thanks,
Dan

ASPX page:

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Templates/PortalBase.Master" CodeBehind="master_course_list.aspx.vb" Inherits="uo.FacultyPortal.web.course_filter" %>
<%@ Register Src="~/code/ucMessage.ascx" TagName="Message"    TagPrefix="uc" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="WorkPane" runat="server">
               <telerik:RadGrid ID="rgCourseInventoryList" runat="server" CssClass="RadGrid" GridLines="None" AllowPaging="True" PageSize="10"
                AllowSorting="True" AutoGenerateColumns="False" ShowStatusBar="true" OnDetailTableDataBind="rgCourseInventoryList_DetailTableDataBind"
                OnNeedDataSource="rgCourseInventoryList_NeedDataSource">
                <MasterTableView CommandItemDisplay="TopAndBottom" DataKeyNames="CourseId" AutoGenerateColumns="false" HierarchyLoadMode="ServerBind"
                HierarchyDefaultExpanded="true" ClientDataKeyNames="CourseId">
                <CommandItemSettings AddNewRecordText="<%$ Resources:ui_messages, msgAddNewRecord %>" AddNewRecordImageUrl="../config/Images/Icons/addrecord.gif" RefreshText=""/>
                <CommandItemTemplate>
                  <asp:ImageButton runat="server" ImageUrl="../config/Images/Icons/addrecord.gif" OnClientClick="return ShowInsertForm();" ID="ibInsertForm" ToolTip="<%$ Resources:ui_labels, ibShowDeleteForm %>"/>
                </CommandItemTemplate>
 
                <Columns>
                    <telerik:GridEditCommandColumn EditImageUrl="../config/Images/Icons/edit.png"  ButtonType="ImageButton" ItemStyle-Width="10px" EditText="<%$ Resources:ui_labels, ibEditCourse %>">
                    </telerik:GridEditCommandColumn>
                    <telerik:GridTemplateColumn UniqueName="gtcShowDelete" ItemStyle-Width="10px">
                        <ItemTemplate>
                        <asp:ImageButton runat="server" ImageUrl="../config/Images/Icons/delete.png" ID="ibShowDeleteForm" ToolTip="<%$ Resources:ui_labels, ibShowDeleteForm %>"/>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridBoundColumn UniqueName="CourseCode" HeaderText="<%$Resources:ui_labels, gbcCourseCode %>" DataField="SISCourseCode">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn UniqueName="CourseTitle" DataField="SISCourseTitle" Visible="false">
                    </telerik:GridBoundColumn>
                    <telerik:GridTemplateColumn UniqueName="gtcTitle" HeaderText="<%$ Resources:ui_labels, gtcTitle %>" ItemStyle-VerticalAlign="Middle">
                        <ItemTemplate>
                            <asp:Image ID="imgParent" runat="server" Visible="false" />
                            <asp:Label ID="lblParentTitle" runat="server"></asp:Label>
                            <asp:Label ID="lblCourseTitle" runat="server"></asp:Label>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn>
                    <telerik:GridBoundColumn UniqueName="CourseNote" HeaderText="<%$Resources:ui_labels, gbcNote %>" DataField="SISCourseNotes">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn UniqueName="CourseExpired" DataField="SISCourseExpired" Visible="false">
                    </telerik:GridBoundColumn>
                    <telerik:GridBoundColumn UniqueName="ParentId" DataField="ParentId" Visible="false">
                    </telerik:GridBoundColumn>
                </Columns>
                <EditFormSettings EditFormType="Template">
                    <FormTableItemStyle width="100%"></FormTableItemStyle>
                    <FormTableStyle GridLines="None" CellSpacing="0" CellPadding="2"></FormTableStyle>
                    <FormStyle Width="100%" backColor="white"></FormStyle>
                    <FormTemplate>
                        <asp:Table ID="tblCourseDetails" CellSpacing="2" CellPadding="1" runat="server" BorderWidth="1" Width="100%">
                            <asp:TableRow runat="server" ID="trInternal">
                            <asp:TableCell runat="server" ID="tcInternal">
                            <asp:Table ID="tblInternal" runat="server">
                            <asp:TableRow ID="trMessageArea" runat="server">
 
                                <asp:TableCell ID="tcMessageArea" runat="server" colspan="2">
                                    <uc:Message ID="msgMessageArea" runat="server" />
                                </asp:TableCell>
                            </asp:TableRow>
                            <asp:TableRow runat="server" ID="trCourseCode">
                                 <asp:TableCell runat="server" ID="tcCourseCode">
                                    <asp:Label runat="server" ID="lblCourseCode" Text="<%$ Resources:ui_labels, lblCourseCode %>"></asp:Label>
                                </asp:TableCell>
                                <asp:TableCell runat="server" ID="tcActivityCode2" HorizontalAlign="Left">
                                    <asp:TextBox runat="server" ID="txtSISCourseCode"></asp:TextBox
                                    <asp:Label runat="server" ID="lblCourseCodeMandatory" Text="<%$ Resources:ui_labels, lblMandatoryFlag %>" CssClass="Mandatory"></asp:Label>
                                </asp:TableCell>
                            </asp:TableRow>
                            <asp:TableRow runat="server" ID="tr1">
                                 <asp:TableCell runat="server" ID="tc1">
                                    <asp:Label runat="server" ID="lblCourseCategory" Text="<%$ Resources:ui_labels, lblCourseCategory %>"></asp:Label>
                                </asp:TableCell>
                                <asp:TableCell runat="server" ID="tc2" HorizontalAlign="Left">
                                    <telerik:RadComboBox runat="server" ID="rcbCourseCategory" ></telerik:RadComboBox
                                    <asp:Label runat="server" ID="lblCourseCategoryMandatory" Text="<%$ Resources:ui_labels, lblMandatoryFlag %>" CssClass="Mandatory"></asp:Label>
                                </asp:TableCell>
                            </asp:TableRow>
                            <asp:TableRow runat="server" ID="tr2">
                                <asp:TableCell runat="server" ID="tc3">
                                    <asp:Label runat="server" ID="lblCourseType" Text="<%$ Resources:ui_labels, lblCourseType %>"></asp:Label>
                                </asp:TableCell>
                                <asp:TableCell runat="server" ID="tc4" HorizontalAlign="Left">
                                    <telerik:RadComboBox runat="server" ID="rcbCourseType" ></telerik:RadComboBox
                                    <asp:Label runat="server" ID="lblCourseTypeMandatory" Text="<%$ Resources:ui_labels, lblMandatoryFlag %>" CssClass="Mandatory"></asp:Label>
                                </asp:TableCell>
                            </asp:TableRow>
                            <asp:TableRow runat="server" ID="tr3">
                                <asp:TableCell runat="server" ID="tc5">
                                    <asp:Label runat="server" ID="lblLanguage" Text="<%$ Resources:ui_labels, lblLanguage %>"></asp:Label>
                                </asp:TableCell>
                                <asp:TableCell runat="server" ID="tc6" HorizontalAlign="Left">
                                    <telerik:RadComboBox runat="server" ID="rcbLanguage" ></telerik:RadComboBox
                                    <asp:Label runat="server" ID="lblLanguageMandatory" Text="<%$ Resources:ui_labels, lblMandatoryFlag %>" CssClass="Mandatory"></asp:Label>
                                </asp:TableCell>
                            </asp:TableRow>
                            <asp:TableRow runat="server" ID="tr4">
                                <asp:TableCell runat="server" ID="tc7">
                                    <asp:Label runat="server" ID="lblAcademicUnit" Text="<%$ Resources:ui_labels, lblAcademicUnit %>"></asp:Label>
                                </asp:TableCell>   
                                <asp:TableCell runat="server" ID="tc8" HorizontalAlign="Left">
                                    <telerik:RadComboBox runat="server" ID="rcbAcademicUnit" MarkFirstMatch="true" ></telerik:RadComboBox
                                    <asp:Label runat="server" ID="lblAcademicUnitMandatory" Text="<%$ Resources:ui_labels, lblMandatoryFlag %>" CssClass="Mandatory"></asp:Label>
                                </asp:TableCell>
                            </asp:TableRow>
                            <asp:TableRow runat="server" ID="tr5">
                                <asp:TableCell runat="server" ID="tc9">
                                    <asp:Label runat="server" ID="lblNumberOfSessions" Text="<%$ Resources:ui_labels, lblNumberOfSessions %>"></asp:Label>
                                </asp:TableCell>
                                <asp:TableCell runat="server" ID="tc10" HorizontalAlign="Left">
                                <asp:TextBox runat="server" ID="txtNumberOfSessions"></asp:TextBox>
                                </asp:TableCell>
                            </asp:TableRow>
                            <asp:TableRow runat="server" ID="tr6">
                                <asp:TableCell runat="server" ID="tc11">
                                    <asp:Label runat="server" ID="lblNote" Text="<%$ Resources:ui_labels, lblNote %>"></asp:Label>
                                </asp:TableCell>
                                <asp:TableCell runat="server" ID="tc12" HorizontalAlign="Left">
                                <asp:TextBox runat="server" ID="txtNote" Wrap="true" TextMode="MultiLine" Rows="4" Columns="40"></asp:TextBox>
                                </asp:TableCell>
                            </asp:TableRow>
                            <asp:TableRow runat="server" ID="trCrossListCourse">
                                <asp:TableCell runat="server" ID="tc13">
                                    <asp:Label runat="server" ID="lblCrossListCourseId" Text="<%$ Resources:ui_labels, lblCrossListCourseId %>"></asp:Label>
                                </asp:TableCell>
                                <asp:TableCell runat="server" ID="tc14" HorizontalAlign="Left">
                                <asp:TextBox runat="server" ID="txtCrossListCourseCode"></asp:TextBox>
                                </asp:TableCell>
                            </asp:TableRow>
                            <asp:TableRow runat="server" ID="tr8">
                                <asp:TableCell runat="server" id="tc15" HorizontalAlign="Left" ColumnSpan="2">
                                    <asp:Button runat="server" ID="btnUpdate"
                                    Text="<%# IIf((TypeOf(Container) is GridEditFormInsertItem),  Resources.ui_labels.btnAdd.ToString(), Resources.ui_labels.btnUpdate.ToString()) %>"
                                    CommandName='<%# IIf((TypeOf(Container) is GridEditFormInsertItem),  "PerformInsert", "Update") %>' /> 
                                    <asp:Button runat="server" ID="btnCancel" CausesValidation="false" CommandName="Cancel" Text="<%$ Resources:ui_labels, btnCancel %>" />
                                </asp:TableCell>
                            </asp:TableRow>
                            </asp:Table>
                            </asp:TableCell>
                            </asp:TableRow>
                        </asp:Table>
                    </FormTemplate>
                </EditFormSettings>
                <DetailTables>
                    <telerik:GridTableView runat="server" DataKeyNames="ChildCourseId" Name="CrossListView" ClientDataKeyNames="ChildCourseId">
                        <Columns>
                            <telerik:GridButtonColumn ImageUrl="~/config/Images/Icons/lnk_del.png" CommandName="Delete" Text="<%$ Resources:ui_messages, msgDeleteLink %>"
                            UniqueName="gbDeleteLink" ButtonType="ImageButton" ItemStyle-Width="10px" ConfirmText="<%$ Resources:ui_messages, msgConfirmDelete %>" ConfirmDialogType="Classic">
                            </telerik:GridButtonColumn>
                            <telerik:GridTemplateColumn UniqueName="gtcShowDelete" ItemStyle-Width="10px">
                                <ItemTemplate>
                                    <asp:Image runat="server" ImageUrl="~/config/Images/Icons/lnk_chld.png"/>
                                </ItemTemplate>
                            </telerik:GridTemplateColumn>
                            <telerik:GridBoundColumn UniqueName="SISCourseCode" DataField="SISCourseCode">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn UniqueName="SISCourseTitle" DataField="SISCourseTitle">
                            </telerik:GridBoundColumn>
                            <telerik:GridBoundColumn UniqueName="SISCourseExpired" DataField="SISCourseExpired" Visible="false">
                            </telerik:GridBoundColumn>
                        </Columns>
                    </telerik:GridTableView>
                </DetailTables>
                </MasterTableView>
                <ClientSettings>
                    <Selecting AllowRowSelect="true"></Selecting>
                    <ClientEvents OnRowDblClick="RowDblClickEdit"></ClientEvents>
                </ClientSettings>
            </telerik:RadGrid>

Code behind....

Imports Telerik.Web.UI
Imports uo.FacultyPortal.CourseOffer
Imports uo.FacultyPortal.Admin
Imports uo.FacultyPortal.Common
Imports uo.FacultyPortal.Common.Constants
 
Partial Class course_filter
    Inherits CultureManager
    Private cacheManager As New CacheManager
    Private admin As CD_Tables = New CD_Tables
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
 
        If Not Page.IsPostBack Then
 
            bindRadComboBox(rcbAcademicUnit, "CD_Academic_Unit")
            bindRadComboBox(rcbCourseCategory, "CD_Course_Categories")
 
        End If
    End Sub
 
    ''' <summary>
    ''' Return a lst of courses to the user based on their selected criteria
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub btnSearch_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnSearch.Click
 
        msgMessageArea.FlushMessages()
 
        If rcbAcademicUnit.SelectedIndex <= 0 Then
            msgMessageArea.AddMessage(Resources.ui_labels.lblAcademicUnit.ToString + Resources.ui_messages.errRequiredField.ToString,
                         Constants.uoMessageType.ErrorType)
        Else
            rgCourseInventoryList.Rebind()
            rgCourseInventoryList.CurrentPageIndex = 0
 
        End If
 
    End Sub
 
    Protected Sub rgCourseInventoryList_DetailTableDataBind(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridDetailTableDataBindEventArgs) Handles rgCourseInventoryList.DetailTableDataBind
        Dim oCourses As New Course
        Dim oCourseInventory As New DataTable
        Dim parentItem As GridDataItem = CType(e.DetailTableView.ParentItem, GridDataItem)
        If parentItem.Edit Then
            Return
        End If
        If e.DetailTableView.Name = "CrossListView" Then
            Dim courseId As Integer = CInt(parentItem.GetDataKeyValue("CourseId"))
            oCourseInventory = oCourses.getCrossListedCourses(courseId, IIf(cbShowDeleted.Checked, "Y", "N"))
            e.DetailTableView.DataSource = oCourseInventory
 
        End If
 
    End Sub
    ''' <summary>
    ''' Get the data for the grid
    ''' </summary>
    ''' <param name="source"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub rgCourseInventoryList_NeedDataSource(ByVal source As Object, ByVal e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles rgCourseInventoryList.NeedDataSource
        Dim oCourses As New Course
        Dim oCourseInventory As New DataTable
 
        '        Dim a As Integer = rgCourseInventoryList.CurrentPageIndex
        If Not e.IsFromDetailTable Then 'andalso e.RebindReason <> GridRebindReason.InitialLoad Then
            If e.RebindReason <> GridRebindReason.InitialLoad Then
                oCourseInventory = oCourses.getCourseInventory(rcbAcademicUnit.SelectedValue, rcbCourseCategory.SelectedValue, IIf(cbShowDeleted.Checked, "Y", "N"))
                rgCourseInventoryList.DataSource = oCourseInventory
 
            End If
 
        End If
 
    End Sub
    ''' <summary>
    ''' If course is no longer offered then overstrike the course code and remove the delete icon
    ''' </summary>
    ''' <param name="source"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub rgCourseInventory_ItemDataBound(ByVal source As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles rgCourseInventoryList.ItemDataBound
        Dim dataItem As GridDataItem
        Dim headerItem As GridHeaderItem
 
        If TypeOf (e.Item) Is GridDataItem AndAlso e.Item.OwnerTableView.Name = "CrossListView" Then
            dataItem = CType(e.Item, GridDataItem)
            If dataItem("SISCourseExpired").Text <> " " Then
                CType(dataItem("gbDeleteLink").Controls(0), ImageButton).Visible = False
                dataItem("SISCourseCode").Font.Strikeout = True
 
            End If
 
            e.Item.OwnerTableView.ShowHeader = False
        End If
 
        If TypeOf (e.Item) Is GridDataItem AndAlso e.Item.OwnerTableView.NamingContainer.ID = "rgCourseInventoryList" Then
            dataItem = CType(e.Item, GridDataItem)
            If dataItem("CourseExpired").Text <> " " Then
                CType(e.Item.FindControl("ibShowDeleteForm"), ImageButton).Visible = False
                dataItem("CourseCode").Font.Strikeout = True
 
            End If
            Dim a As String = e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("CourseId")
            If dataItem("ParentId").Text <> " " Then
                CType(e.Item.FindControl("ibShowDeleteForm"), ImageButton).Visible = False
                CType(dataItem.FindControl("imgParent"), Image).ImageUrl = "../Images/Icons/lnk.png"
                CType(dataItem.FindControl("imgParent"), Image).Visible = True
 
                If dataItem("CourseExpired").Text <> " " Then
                    CType(dataItem.FindControl("lblParentTitle"), Label).Text = "(" + dataItem("ParentId").Text + ")"
                    CType(dataItem.FindControl("lblParentTitle"), Label).Font.Strikeout = True
                    CType(dataItem.FindControl("lblCourseTitle"), Label).Text = "<br>" + dataItem("CourseTitle").Text
                Else
                    CType(dataItem.FindControl("lblCourseTitle"), Label).Text = "(" + dataItem("ParentId").Text + ")" + "<br>" + dataItem("CourseTitle").Text
                End If
            Else
                CType(dataItem.FindControl("lblCourseTitle"), Label).Text = dataItem("CourseTitle").Text
            End If
        ElseIf TypeOf (e.Item) Is GridHeaderItem Then
            headerItem = CType(e.Item, GridHeaderItem)
            '            headerItem
        End If
 
    End Sub
    ''' <summary>
    ''' Take action depending on what type of item it is.
    ''' </summary>
    ''' <param name="source"></param>)
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub rgCourseInventory_ItemCreated(ByVal source As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles rgCourseInventoryList.ItemCreated
        Dim courseId As String
        Dim rcb As New RadComboBox
        Dim oCourses As New Course
 
        If TypeOf e.Item Is GridEditFormItem And e.Item.IsInEditMode Then
 
            bindRadComboBox(CType(e.Item.FindControl("rcbCourseCategory"), RadComboBox), "CD_Course_Categories")
            bindRadComboBox(CType(e.Item.FindControl("rcbCourseType"), RadComboBox), "CD_Course_Types")
            bindRadComboBox(CType(e.Item.FindControl("rcbLanguage"), RadComboBox), "CD_Course_Languages")
            bindRadComboBox(CType(e.Item.FindControl("rcbAcademicUnit"), RadComboBox), "CD_Academic_Unit")
 
            ' Are we editing an existing row?
            If e.Item.ItemIndex >= 0 Then
                ' Then get the course details from the DB and bind the values to the list boxes.
                courseId = e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("CourseId")
                oCourses.getCourseDetails(courseId)
                ' Hide the course code if we're editing.  Only see it on a create.
                CType(e.Item.FindControl("trCourseCode"), TableRow).Visible = False
                CType(e.Item.FindControl("txtSISCourseCode"), TextBox).Text = oCourses.SISCourseCode
                CType(e.Item.FindControl("rcbCourseCategory"), RadComboBox).SelectedValue = oCourses.CourseCategoryId
                CType(e.Item.FindControl("rcbCourseType"), RadComboBox).SelectedValue = oCourses.CourseTypeId
                CType(e.Item.FindControl("rcbLanguage"), RadComboBox).SelectedValue = oCourses.CourseLanguageId
                CType(e.Item.FindControl("rcbAcademicUnit"), RadComboBox).SelectedValue = oCourses.AcademicUnitId
                CType(e.Item.FindControl("txtNumberOfSessions"), TextBox).Text = oCourses.NumberOfSessions
                CType(e.Item.FindControl("txtNote"), TextBox).Text = oCourses.Note
                If Not oCourses.CrossListCourseCode Is Nothing Then
                    CType(e.Item.FindControl("trCrossListCourse"), TableRow).Visible = False
                End If
            End If
 
        ElseIf TypeOf e.Item Is GridDataItem Then
            If e.Item.OwnerTableView.NamingContainer.ID = "rgCourseInventoryList" Then
                Dim clr As String = e.Item.Style("backgroundColor")
                e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='lightsteelblue';this.style.cursor='hand';")
                e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='" & clr & "';this.style.cursor='';")
 
                Dim deleteForm As ImageButton = DirectCast(e.Item.FindControl("ibShowDeleteForm"), ImageButton)
                deleteForm.Attributes("onclick") = [String].Format("return ShowDeleteForm('{0}','{1}');", e.Item.OwnerTableView.DataKeyValues(e.Item.ItemIndex)("CourseId"), e.Item.ItemIndex)
            ElseIf e.Item.OwnerTableView.Name = "CrossListView" Then
                Dim clr As String = e.Item.Style("backgroundColor")
                e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='#cc99ff';this.style.cursor='hand';")
                e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='" & clr & "';this.style.cursor='';")
            End If
        End If
 
        If TypeOf e.Item Is GridDataItem Then
        End If
 
    End Sub
    ''' <summary>
    ''' Hide the empty rows in child gridview
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub rgCourseInventoryList_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles rgCourseInventoryList.PreRender
        HideExpandColumnRecursive(rgCourseInventoryList.MasterTableView)
    End Sub
 
    ''' <summary>
    ''' Recursively loop through grid looking for empty chidren and suppress the "No records found message" and the row.
    ''' </summary>
    ''' <param name="tableView"></param>
    ''' <remarks></remarks>
    Private Sub HideExpandColumnRecursive(ByVal tableView As GridTableView)
        Dim nestedViewItems As GridItem() = tableView.GetItems(GridItemType.NestedView)
        For Each nestedViewItem As GridNestedViewItem In nestedViewItems
            For Each nestedView As GridTableView In nestedViewItem.NestedTableViews
                If nestedView.Items.Count = 0 Then
                    Dim cell As TableCell = nestedView.ParentItem("ExpandColumn")
                    cell.Controls(0).Visible = False
                    nestedViewItem.Visible = False
                End If
                If nestedView.HasDetailTables Then
                    HideExpandColumnRecursive(nestedView)
                End If
            Next
        Next
    End Sub
End Class

...and the class to build the dataset...

Option Strict On
 
Imports System.Data
Imports uo.Data
Imports log4net
Imports uo.FacultyPortal
Imports uo.FacultyPortal.Common
Imports System.Globalization
Imports System.Threading.Thread
Imports System.Text
 
Public Class Course
 
    Public Function getCrossListedCourses(ByVal iCourseId As Integer, ByVal iShowDeleted As String) As DataTable
        Dim oCourseCrossList As DataSet
        Dim oGetCourseSchedule As XmlCallWrapper
 
        Try
 
            oGetCourseSchedule = XmlDatabase.CreateCallWrapper("FACULTYPORTAL", "PKG_COURSES.GET_CROSS_LISTED_COURSES_PRC")
            oGetCourseSchedule("PN_COURSE_ID") = iCourseId
            ' TODO need to get language id
            oGetCourseSchedule("PV_SHOW_EXPIRED") = iShowDeleted
            oGetCourseSchedule("PN_INTERFACE_LANG_ID") = 1
            oGetCourseSchedule.Execute()
 
            oCourseCrossList = oGetCourseSchedule.GetDataSet
            oCourseCrossList.Tables("PC_RESULT").Columns(0).ColumnName = "ChildCourseId"
            oCourseCrossList.Tables("PC_RESULT").Columns(1).ColumnName = "SISCourseCode"
            oCourseCrossList.Tables("PC_RESULT").Columns(2).ColumnName = "SISCourseTitle"
            oCourseCrossList.Tables("PC_RESULT").Columns(3).ColumnName = "SISCourseExpired"
 
        Catch ex As Exception
            ' log error
            _logger.Error(ex)
        Finally
 
        End Try
 
        Return oCourseCrossList.Tables("PC_RESULT")
 
    End Function
 
    Public Function getCourseInventory(ByVal iAcademicUnit As Integer, ByVal iCourseCategory As Integer, ByVal iShowDeleted As String) As DataTable
        Dim oCourseSchedule As DataSet
        Dim oGetCourseSchedule As XmlCallWrapper
 
        Try
 
            oGetCourseSchedule = XmlDatabase.CreateCallWrapper("FACULTYPORTAL", "PKG_COURSES.GET_COURSES_BY_UNIT_PRC")
            oGetCourseSchedule("PN_ACADEMIC_UNIT_ID") = iAcademicUnit
            oGetCourseSchedule("PN_COURSE_CATEGORY_ID") = IIf(iCourseCategory = 0, DBNull.Value, iCourseCategory)
            oGetCourseSchedule("PV_SHOW_EXPIRED") = iShowDeleted
            ' TODO - Need to pass in or get the language
            oGetCourseSchedule("PN_INTERFACE_LANG_ID") = 1
            oGetCourseSchedule.Execute()
 
            oCourseSchedule = oGetCourseSchedule.GetDataSet
            oCourseSchedule.Tables("PC_RESULT").Columns(0).ColumnName = "CourseId"
            oCourseSchedule.Tables("PC_RESULT").Columns(1).ColumnName = "SISCourseCode"
            oCourseSchedule.Tables("PC_RESULT").Columns(2).ColumnName = "SISCourseTitle"
            oCourseSchedule.Tables("PC_RESULT").Columns(3).ColumnName = "SISCourseNotes"
            oCourseSchedule.Tables("PC_RESULT").Columns(4).ColumnName = "SISCourseExpired"
            oCourseSchedule.Tables("PC_RESULT").Columns(5).ColumnName = "ParentId"
 
        Catch ex As Exception
            ' log error
            _logger.Error(ex)
        Finally
 
        End Try
 
        Return oCourseSchedule.Tables("PC_RESULT")
    End Function
    Public Sub getCourseDetails(ByVal iCourseId As Integer)
        Dim oCourseDetails As DataSet
        Dim oGetCourseDetails As XmlCallWrapper
 
        Try
            oGetCourseDetails = XmlDatabase.CreateCallWrapper("FACULTYPORTAL", "PKG_COURSES.GET_COURSE_DETAILS_PRC")
            oGetCourseDetails("PN_COURSE_ID") = iCourseId
            oGetCourseDetails.Execute()
            oCourseDetails = oGetCourseDetails.GetDataSet
            CourseCategoryId = CInt(oCourseDetails.Tables("PC_RESULT")(0).Item("COURSE_CATEGORY_ID"))
            CourseTypeId = CInt(oCourseDetails.Tables("PC_RESULT")(0).Item("COURSE_TYPE_ID"))
            CourseLanguageId = CInt(oCourseDetails.Tables("PC_RESULT")(0).Item("LANGUAGE_ID"))
            SISCourseCode = oCourseDetails.Tables("PC_RESULT")(0).Item("SIS_ACAD_ACT_CD").ToString
            AcademicUnitId = CInt(oCourseDetails.Tables("PC_RESULT")(0).Item("UNIT_ID"))
            NumberOfSessions = oCourseDetails.Tables("PC_RESULT")(0).Item("REG_SESSION_COUNT").ToString
            Note = oCourseDetails.Tables("PC_RESULT")(0).Item("NOTE").ToString
            CrossListCourseCode = CStr(oCourseDetails.Tables("PC_RESULT")(0).Item("CROSS_LIST_COURSE_ID"))
        Catch ex As Exception
            ' log error
            _logger.Error(ex)
        Finally
 
        End Try
 
    End Sub
 
End Class
Jon
Top achievements
Rank 2
Veteran
 answered on 02 Jul 2020
3 answers
581 views

Am trying to change old PdfViewer with Telerik control

This built as the following :

1. main Page (Attachment.aspx) load -> usercontrol (TransactionArchiving.ascx) //TransactionArchiving to deal with business

2. usercontrol (TransactionArchiving.ascx) load -> usercontrol (InboundArchive.ascx) //InboundArchive to deal with business

3. usercontrol (InboundArchive.ascx) load -> usercontrol (Archiving.ascx)  //Archiving usercontrol should support different type of attachments and should dynamically load the attachment (PdfViewer ,TextArea, Templates, Word and .....) each type built into different usercontrol

 

On bellow HTML for Archiving usercontrol 

<asp:Repeater ID="archivedTabs" runat="server" OnItemDataBound="archivedTabs_ItemDataBound">
         <ItemTemplate>
             <div id='<%#this.ClientID + "_viewT" + Container.ItemIndex.ToString() %>' class="tabContainer noBorder">
 
                 <div class="col-sm-12 lntext-Hdr">
                 </div>
                 <asp:HiddenField ID="hdnUniqueId" runat="server" />
                 <asp:HiddenField ID="hdnIndex" runat="server" Value='<%#Container.ItemIndex.ToString()%>' />
                 <asp:PlaceHolder ID="dynamicControlsPlaceHolder" runat="server"></asp:PlaceHolder>
                 <div class="rowF noRowColor noBorder" style="text-align: center">
                     <div class="col8">
                         <asp:Button ID="saveBtn" OnClick="saveBtn_Click" OnClientClick="return true;" CssClass="btn btnGreen loadingData" runat="server" meta:resourcekey="saveBtn" />
                         <asp:Button ID="deleteBtn" CausesValidation="false" OnClick="deleteBtn_Click" OnClientClick="return true;" CssClass="btn btnGreen" runat="server" meta:resourcekey="deleteBtn" />
                         <asp:Button ID="sendBtn" CausesValidation="false" Visible="false" CssClass="btn btnGreen" runat="server" meta:resourcekey="sendBtn" />
                         <asp:Button runat="server" ID="eibtnBackToDirectorateTray" OnClick="eibtnBackToDirectorateTray_Click" Style="display: inline;" meta:resourcekey="eibtnBackToDirectorateTrayResource1" class="btn btnGreen" CausesValidation="false" />
                         <asp:Button runat="server" ID="eibtnBackToOutboundDraftTray" OnClick="eibtnBackToOutboundDraftTray_Click" Style="display: inline;" meta:resourcekey="eibtnBackToOutboundDraftTrayResource1" class="btn btnGreen" CausesValidation="false" />
                     </div>
                 </div>
             </div>
         </ItemTemplate>
     </asp:Repeater>

I think the issue cuz of repeater and PlaceHolder (dynamicControlsPlaceHolder)

This is the C# code for the same userControl

PlaceHolder dynamicControls = item.FindControl("dynamicControlsPlaceHolder") as PlaceHolder;
PDFViewer ucPDFViewer = LoadControl("~/VIP/UserControls/ArchivingPDF/PDFViewer.ascx") as PDFViewer;
    ucPDFViewer.ID = "archivingControl_" + hdnUniqueId;
    ucPDFViewer.IsFromDirectorate = this.IsFromDirectorate;
    ucPDFViewer.CallDelete += new EventHandler(DeleteFromViewer);
 
 
    if (this.IsForManifest)
    {
        ucPDFViewer.loadManifest(record);
    }
    else
    {
        ucPDFViewer.loadData(record);
    }
 
    dynamicControls.Controls.Add(ucPDFViewer);

 

On bellow PDFViewer.ascx code

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.2.2/pdf.js"></script>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<link href='<%# Page.ResolveUrl("~/UserControls/ArchivingPDF/css/styles.css") %>' rel="stylesheet" />
 
<%--<form id="form1" runat="server">--%>
    <%--    <telerik:RadScriptManager runat="server" ID="RadScriptManager1" />--%>
    <telerik:RadSkinManager ID="RadSkinManager1" runat="server" ShowChooser="true" />
    <script type="text/javascript">
        window.pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.2.2/pdf.worker.js';
 
        function pageLoad(app, args) {
            var upload = $find('<%= RadAsyncUpload1.ClientID %>');
            $(upload.get_element()).find("input[type='file']").attr("accept", ".docx, .rtf, .html, .txt, .xlsx, .csv");
        }
        function fileUploaded(sender, args) {
            $find('<%= RadAjaxManager1.ClientID %>').ajaxRequest();
        }
    </script>
 
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnablePageHeadUpdate="false">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadAsyncUpload1" />
                    <telerik:AjaxUpdatedControl ControlID="RadPdfViewer1" LoadingPanelID="RadAjaxLoadingPanel1" />
                    <telerik:AjaxUpdatedControl ControlID="RadLabel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
 
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
    </telerik:RadAjaxLoadingPanel>
 
    <div class="demo-container size-wide" runat="server">
        <telerik:RadAsyncUpload ID="RadAsyncUpload1" runat="server"
            OnClientFileUploaded="fileUploaded" OnFileUploaded="RadAsyncUpload1_FileUploaded"
            AllowedFileExtensions=".docx,.rtf,.html,.txt,.xlsx,.csv" HideFileInput="true"
            AutoAddFileInputs="false" Localization-Select="Upload And Convert" EnableInlineProgress="false"
            MultipleFileSelection="Disabled" />
        <telerik:RadLabel ID="RadLabel1" runat="server" Text="Displayed Document: <b>Document.pdf</b>"
            Style="float: left;">
        </telerik:RadLabel>
        <telerik:RadLabel ID="RadLabel2" runat="server" Text="Supported formats: <b>.docx / .rtf / .html / .txt / .xlsx / .csv</b>"
            Style="float: right;">
        </telerik:RadLabel>
        <br />
        <br />
        <br />
        <telerik:RadPdfViewer runat="server" ID="RadPdfViewer1" Height="600px" Width="100%" Scale="0.9">
            <%--<PdfjsProcessingSettings File='<%# Page.ResolveUrl("~/EmptyText.txt") %>'></PdfjsProcessingSettings>--%>
        </telerik:RadPdfViewer>
    </div>
<%--</form>--%>

 

PdfViewer C# code

protected void Page_Load(object sender, EventArgs e)
{
    int maxSize = 10 * 1024 * 1024; // 10MB
 
    RadAsyncUpload1.MaxFileSize = maxSize;
    RadPdfViewer1.MaxSerializerLength = maxSize;
 
    RadPdfViewer1.PdfjsProcessingSettings.File = Page.ResolveUrl("~/EmptyDoc.pdf");
}
protected void RadAsyncUpload1_FileUploaded(object sender, FileUploadedEventArgs e)
{
    byte[] renderedBytes = null;
    string extention = Path.GetExtension(e.File.FileName);
 
    // RadFlow Documents
    if (Regex.IsMatch(extention, ".docx|.rtf|.html|.txt"))
    {
        IFormatProvider<RadFlowDocument> provider = null;
        RadFlowDocument document = null;
 
        switch (extention)
        {
            case ".docx": provider = new DocxFormatProvider(); break;
            case ".rtf": provider = new RtfFormatProvider(); break;
            case ".html": provider = new HtmlFormatProvider(); break;
            case ".txt": provider = new TxtFormatProvider(); break;
            default: provider = null; break;
        }
 
        document = provider.Import(e.File.InputStream);
 
        Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider pdfProvider = new
       Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider();
 
        using (MemoryStream ms = new MemoryStream())
        {
            pdfProvider.Export(document, ms);
            renderedBytes = ms.ToArray();
        }
    }
 
    // Workbook Documents
    else if (Regex.IsMatch(extention, ".xlsx|.csv"))
    {
        IWorkbookFormatProvider provider = null;
        Workbook document = null;
 
        switch (extention)
        {
            case ".xlsx": provider = new XlsxFormatProvider(); break;
            case ".csv": provider = new CsvFormatProvider(); break;
            default: provider = null; break;
        }
 
        document = provider.Import(e.File.InputStream);
 
        Telerik.Windows.Documents.Spreadsheet.FormatProviders.Pdf.PdfFormatProvider pdfProvider = new
      Telerik.Windows.Documents.Spreadsheet.FormatProviders.Pdf.PdfFormatProvider();
 
        using (MemoryStream ms = new MemoryStream())
        {
            pdfProvider.Export(document, ms);
            renderedBytes = ms.ToArray();
        }
    }
 
    RadLabel1.Text = "Displayed Document: <b>" + e.File.FileName + "</b>";
 
    RadPdfViewer1.PdfjsProcessingSettings.FileSettings.Data = Convert.ToBase64String(renderedBytes);
}

 

So the first image its the consol error (Capture01)

I have tried to update the code as the following (Capture02) // i think updated it wrong way

After code update (Capture03) 

This is the first time for me to implement telerik controls and i could not find fully document for all features needed (Custom buttons, Add png to the attached like signature).

Eyup
Telerik team
 answered on 02 Jul 2020
4 answers
421 views

You can check your example :https://demos.telerik.com/aspnet-ajax/pdfviewer/applicationscenarios/dplintegration/defaultcs.aspx

 

This is my code:

<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<head runat="server">
    <title>Telerik ASP.NET Example</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.2.2/pdf.js"></script>
    <link href="styles.css" rel="stylesheet" />
</head>
<body>
    <form id="form1" runat="server">
        <telerik:RadScriptManager runat="server" ID="RadScriptManager1" />
        <telerik:RadSkinManager ID="RadSkinManager1" runat="server" ShowChooser="true" />
        <script type="text/javascript">
            window.pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.2.2/pdf.worker.js';
 
            function pageLoad(app, args) {
                var upload = $find('<%= RadAsyncUpload1.ClientID %>');
                $(upload.get_element()).find("input[type='file']").attr("accept", ".docx, .rtf, .html, .txt, .xlsx, .csv");
            }
            function fileUploaded(sender, args) {
                $find('<%= RadAjaxManager1.ClientID %>').ajaxRequest();
            }
        </script>
 
        <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" EnablePageHeadUpdate="false">
            <AjaxSettings>
                <telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
                    <UpdatedControls>
                        <telerik:AjaxUpdatedControl ControlID="RadAsyncUpload1" />
                        <telerik:AjaxUpdatedControl ControlID="RadPdfViewer1" LoadingPanelID="RadAjaxLoadingPanel1" />
                        <telerik:AjaxUpdatedControl ControlID="RadLabel1" />
                    </UpdatedControls>
                </telerik:AjaxSetting>
            </AjaxSettings>
        </telerik:RadAjaxManager>
        <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
        </telerik:RadAjaxLoadingPanel>
 
        <div class="demo-container size-wide" runat="server">
            <telerik:RadAsyncUpload ID="RadAsyncUpload1" runat="server"
                OnClientFileUploaded="fileUploaded" OnFileUploaded="RadAsyncUpload1_FileUploaded"
                AllowedFileExtensions=".docx,.rtf,.html,.txt,.xlsx,.csv" HideFileInput="true"
                AutoAddFileInputs="false" Localization-Select="Upload And Convert" EnableInlineProgress="false"
                MultipleFileSelection="Disabled" />
            <telerik:RadLabel ID="RadLabel1" runat="server" Text="Displayed Document: <b>Document.pdf</b>"
                Style="float: left;">
            </telerik:RadLabel>
            <telerik:RadLabel ID="RadLabel2" runat="server" Text="Supported formats: <b>.docx / .rtf / .html / .txt / .xlsx / .csv</b>"
                Style="float: right;">
            </telerik:RadLabel>
            <br />
            <br />
            <br />
            <div dir="ltr" runat="server">
                <telerik:RadPdfViewer runat="server" ID="RadPdfViewer1" Height="550px" Width="100%" Scale="0.9" Skin="Default" RenderMode="Lightweight">
                    <%--<PdfjsProcessingSettings File="../../Document.pdf"></PdfjsProcessingSettings>--%>
                </telerik:RadPdfViewer>
            </div>
        </div>
 
    </form>
</body>
</html>

 

using System;
using System.IO;
using System.Text.RegularExpressions;
using Telerik.Web.UI;
using Telerik.Windows.Documents.Common.FormatProviders;
using Telerik.Windows.Documents.Flow.FormatProviders.Docx;
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Rtf;
using Telerik.Windows.Documents.Flow.FormatProviders.Txt;
using Telerik.Windows.Documents.Flow.Model;
using Telerik.Windows.Documents.Spreadsheet.FormatProviders;
using Telerik.Windows.Documents.Spreadsheet.FormatProviders.OpenXml.Xlsx;
using Telerik.Windows.Documents.Spreadsheet.FormatProviders.TextBased.Csv;
using Telerik.Windows.Documents.Spreadsheet.Model;
 
namespace MCS.Web
{
    public partial class DefaultCS : BasePageClass
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int maxSize = 10 * 1024 * 1024; // 10MB
 
            RadAsyncUpload1.MaxFileSize = maxSize;
            RadPdfViewer1.MaxSerializerLength = maxSize;
        }
        protected void RadAsyncUpload1_FileUploaded(object sender, FileUploadedEventArgs e)
        {
            byte[] renderedBytes = null;
            string extention = Path.GetExtension(e.File.FileName);
 
            // RadFlow Documents
            if (Regex.IsMatch(extention, ".docx|.rtf|.html|.txt"))
            {
                IFormatProvider<RadFlowDocument> provider = null;
                RadFlowDocument document = null;
 
                switch (extention)
                {
                    case ".docx": provider = new DocxFormatProvider(); break;
                    case ".rtf": provider = new RtfFormatProvider(); break;
                    case ".html": provider = new HtmlFormatProvider(); break;
                    case ".txt": provider = new TxtFormatProvider(); break;
                    default: provider = null; break;
                }
 
                document = provider.Import(e.File.InputStream);
 
                Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider pdfProvider = new
               Telerik.Windows.Documents.Flow.FormatProviders.Pdf.PdfFormatProvider();
 
                using (MemoryStream ms = new MemoryStream())
                {
                    pdfProvider.Export(document, ms);
 
                    renderedBytes = ms.ToArray();
                }
            }
 
            // Workbook Documents
            else if (Regex.IsMatch(extention, ".xlsx|.csv"))
            {
                IWorkbookFormatProvider provider = null;
                Workbook document = null;
 
                switch (extention)
                {
                    case ".xlsx": provider = new XlsxFormatProvider(); break;
                    case ".csv": provider = new CsvFormatProvider(); break;
                    default: provider = null; break;
                }
 
                document = provider.Import(e.File.InputStream);
 
                Telerik.Windows.Documents.Spreadsheet.FormatProviders.Pdf.PdfFormatProvider pdfProvider = new
              Telerik.Windows.Documents.Spreadsheet.FormatProviders.Pdf.PdfFormatProvider();
 
                using (MemoryStream ms = new MemoryStream())
                {
                    pdfProvider.Export(document, ms);
                    renderedBytes = ms.ToArray();
                }
            }
 
            RadLabel1.Text = "Displayed Document: <b>" + e.File.FileName + "</b>";
 
            RadPdfViewer1.PdfjsProcessingSettings.FileSettings.Data = Convert.ToBase64String(renderedBytes);
        }
    }
}
Eyup
Telerik team
 answered on 02 Jul 2020
4 answers
613 views
Hi,

I want to find a check_box_list controls check_box count in Rad_list_view on client side. how can get it.
please provide solutions.
My code as follows
<telerik:RadListView runat="server"  ID="RadListView1" BorderColor="White" onitemdatabound="RadListView1_ItemDataBound" BorderStyle="None" AllowPaging="True">
        <ClientSettings></ClientSettings>          
         <ItemTemplate>
                    <div style="border-bottom:1px solid gray;padding-left:15px;">   
                          <table cellpadding="2px" cellspacing="2px" border="0">                                                                   
                                        <tr>                                                                    
                                        <td class="LabelWidth" style="margin-left:2%; vertical-align:middle;font-family: Georgia,serif;">
                                                 <asp:Label ID="Label4" runat="server" Text='<%# (DataBinder.Eval(Container.DataItem,"PermissionItemName")) %>'></asp:Label>
                                     </td>
                                                                      
                                     <td>    </td>
                                      <td valign="middle">
                                             <asp:CheckBoxList  ID="Listbox_Permission" CellSpacing="10" CellPadding="5"  runat="server" RepeatDirection="Horizontal" CssClass="CheckboxList" AutoPostBack="false" >
                                               </asp:CheckBoxList>        
                                                                          
                                       </td>
                                  </tr>                                        
                         </table>
                   </div>
                 </ItemTemplate>
            </telerik:RadListView>

Thanks,
Rahul
Eyup
Telerik team
 answered on 02 Jul 2020
2 answers
104 views

I need to manually select the first list matching item and turn it into a token.

 

Reading the documentation I think that the way to go would be within the example below:

var autoComplete = $find("<%= RadAutoCompleteBox1.ClientID %>");
var newEntry = autoComplete.createEntry('Text', 'Value');
var entries = autoComplete.get_entries();
entries.add(newEntry);

 

 

However instead to create newEntry manually I need to capture the first item in the list that matches user typing (text and value). Any idea?

 

Thanks!

Yan Moura
Top achievements
Rank 1
Veteran
Iron
 answered on 01 Jul 2020
15 answers
764 views

Hello,

my Telerik license has been renewed however when I logged in and try to download latest version it showing that I do not have license and cannot download any new version.

Please advise.

Thanks.

Vitaly.

 

Rumen
Telerik team
 answered on 01 Jul 2020
6 answers
577 views
Hi,
   I want to do when i selected AutoCompleteBox  item i want to do a postback and get the selected items id on server side.so provide solutions.
Thanks,
Rahul
Ciupaz
Top achievements
Rank 2
Veteran
 answered on 01 Jul 2020
1 answer
227 views

I found an issue with the context menu. I tried in the demo to right click on an empty area/on a word and expects that the default context menu should show up with copy/paste etc... Only the native browser (Chrome 83) menu shows up. Shouldn't this work by default?

In my code i have been using this to add a custom menu, but it doesnt work due to the above issue i guess.
Is there any documentation how to add items for all tags, in the code below I use *, and seen other examples with BODY

MyRadEditor.EnsureToolsFileLoaded();
var contextMenu = MyRadEditor.ContextMenus.FindByTagName("*");

var editorTool = new EditorTool("Toolname");
editorTool.ShowIcon = false;
contextMenu.Tools.Add(editorTool);

Rumen
Telerik team
 answered on 01 Jul 2020
4 answers
737 views
Hello,

is there a way to accomplish the following task using the RadGrid client side API:

RadGridComparableAnalysis.MasterTableView.AutoGeneratedColumns[columnCounter].ItemStyle.BackColor =

Color.White;

 


As you can noticed from the following code, i'm able to get the object of target column but could not find a property which can allow me to change the background color. Please let me know what i'm missing here

//Define array of columns

 

var grdColumns = new Array(masterTable.get_columns().length);

 

//Get all columns
grdColumns = masterTable.get_columns();

 


//Navigate to all columns and chage background color for the required columns
for
(var columnCounter = 0; columnCounter < masterTable.get_columns().length; columnCounter++) {

 

 

var remainder = (columnCounter % 2);

 

 

if (remainder == 0) {

 

 

var grdColumn = grdColumns[columnCounter];

 

 

//masterTable.getColumnByUniqueName(grdColumn.get_uniqueName()).backColor = "Blue";
//masterTable.autoGeneratedColumns[columnCounter].itemStyle.iackColor = "Blue";
}
}

 

Thanks

 

Attila Antal
Telerik team
 answered on 30 Jun 2020
4 answers
320 views

is there a way to show the lightbox from code behind.


e.g. RadLightBox1.Show()

Attila Antal
Telerik team
 answered on 30 Jun 2020
Narrow your results
Selected tags
Tags
+? more
Top users last month
Simon
Top achievements
Rank 2
Iron
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Grant
Top achievements
Rank 3
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Simon
Top achievements
Rank 2
Iron
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Marco
Top achievements
Rank 4
Iron
Iron
Iron
Grant
Top achievements
Rank 3
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?