Hi,
I am using a RadTreeView for displaying certain data in our application.Lets say I need to display 20 records (5 types and 4 records per type. Example: 20 cities where 4 cities each are grouped to a state). In my application I can have upto 200-300 such records real time.
My Approach:
I am populating all the tree view during page load. So in theory, I am creating 20 instances of a user control and adding them to the treeview which is causing a huge performance issue.
What I need:
I need to populate only the parent nodes (5 states from above) and when expanded on a parent node, dynamically add 4 user controls to that node.
Please suggest if there is an example you have (Request to not share examples that just populates text from a data source. You can hard code the number 4 if that makes it easy) or provide an approach for me to execute.
Thanks in advance.
Regards,
Krishna Chaduvula.

Hi,
I am using radgrid version 2015 q2 template column and edit template column I want to implement duplicate record validation in insert and edit mode but I am not able to find controls in insert and edit mode of radgrid below is my code.
If there is another easy method to validate dublicate record in radgrid plz share with me thanks.
<telerik:RadGrid ID="grdLanguage" runat="server" AllowSorting="True" AllowPaging="True" AllowCustomPaging="True" PagerStyle-Mode="NextPrev" Skin="Bootstrap" ShowGroupPanel="false"> <GroupingSettings CaseSensitive="false" /> <MasterTableView AutoGenerateColumns="False" EditMode="PopUp" DataKeyNames="Language_ID" CommandItemDisplay="Top"> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn1 column" UniqueName="EditCommandColumn1"> </EditColumn> <PopUpSettings Modal="true" /> </EditFormSettings> <CommandItemTemplate> <asp:LinkButton ID="LinkButton2" runat="server" CommandName="InitInsert" Visible='<%# !grdLanguage.MasterTableView.IsItemInserted %>'><img style="border:0px;vertical-align:middle;" alt="" src="Images/AddRecord.png"/>Add new</asp:LinkButton> </CommandItemTemplate> <RowIndicatorColumn> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridTemplateColumn HeaderText="Language Name"> <ItemTemplate> <asp:Label ID="lblCertName" runat="server" Text='<%# Bind("Language_Type.Language_Type_Name") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Reading"> <ItemTemplate> <telerik:RadRating ID="ratReading" runat="server" DbValue='<%# Bind("Read_Skill") %>' ItemCount="5" ReadOnly="true"></telerik:RadRating> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Writing"> <ItemTemplate> <telerik:RadRating ID="ratWriting" runat="server" DbValue='<%# Bind("Writing_Skill") %>' ItemCount="5" ReadOnly="true"></telerik:RadRating> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Speaking"> <ItemTemplate> <telerik:RadRating ID="ratSpeaking" runat="server" DbValue='<%# Bind("Speaking_Skill") %>' ItemCount="5" ReadOnly="true"></telerik:RadRating> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridEditCommandColumn HeaderText="Edit" ButtonType="ImageButton"></telerik:GridEditCommandColumn> </Columns> <EditFormSettings EditFormType="Template" PopUpSettings-Height="350px" PopUpSettings-Width="600px"> <FormTemplate> <div class="form-horizontal panel panel-primary"> <div class="panel-heading">Previous Experience</div> <div class="panel-body"> <div> <asp:CustomValidator ID="CustValLanguage" OnServerValidate="CustValLanguage_ServerValidate1" ValidationGroup="valLanguage" runat="server" Display="Dynamic"> </asp:CustomValidator> </div> <div class="form-group required"> <asp:Label ID="Label1" CssClass="col-sm-2 control-label" runat="server" Text="Degree"></asp:Label> <div class="col-sm-10"> <telerik:RadComboBox ID="ddlLanguage_Type_ID" SelectedValue='<%# Bind("Language_Type_ID") %>' runat="server" Skin="Bootstrap"> <Items> <telerik:RadComboBoxItem Text="[Select Item]" Value="0" runat="server" /> <telerik:RadComboBoxItem Text="Arabic" Value="1" runat="server" /> <telerik:RadComboBoxItem Text="English" Value="2" runat="server" /> <telerik:RadComboBoxItem Text="Farsi" Value="5" runat="server" /> <telerik:RadComboBoxItem Text="French" Value="3" runat="server" /> <telerik:RadComboBoxItem Text="German" Value="4" runat="server" /> </Items> </telerik:RadComboBox> <br /> <span> <asp:RequiredFieldValidator ControlToValidate="ddlLanguage_Type_ID" InitialValue="[Select Item]" Display="Dynamic" SetFocusOnError="true" CssClass="text-danger" runat="server" ID="RequiredFieldValidator5" ErrorMessage="Language is Required!" ValidationGroup="valLanguage"></asp:RequiredFieldValidator></span> </div> </div> <div class="form-group "> <asp:Label ID="lblCertName" CssClass="col-sm-2 control-label" runat="server" Text="Reading"></asp:Label> <div class="col-sm-10"> <telerik:RadRating ID="ratReading" runat="server" Precision="Item" DbValue='<%# Bind("Read_Skill") %>' ItemCount="5"></telerik:RadRating> <span></span> </div> </div> <div class="form-group "> <asp:Label ID="lblCertAuthority" CssClass="col-sm-2 control-label" runat="server" Text="Writing"></asp:Label> <div class="col-sm-10"> <telerik:RadRating ID="ratWriting" runat="server" Precision="Item" DbValue='<%# Bind("Writing_Skill") %>' ItemCount="5"></telerik:RadRating> <span></span> </div> </div> <div class="form-group "> <asp:Label ID="Label2" CssClass="col-sm-2 control-label" runat="server" Text="Speacking"></asp:Label> <div class="col-sm-10"> <telerik:RadRating ID="ratSpeaking" Precision="Item" runat="server" DbValue='<%# Bind("Speaking_Skill") %>' ItemCount="5"></telerik:RadRating> <span></span> </div> </div> <asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>' runat="server" ValidationGroup="valLanguage" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'></asp:Button> <asp:Button ID="btnCancel" formnovalidate name="cancel" class="cancel" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel"></asp:Button> </div> </div> </FormTemplate> </EditFormSettings> </MasterTableView> <ClientSettings> <ClientEvents OnPopUpShowing="PopUpShowing" /> </ClientSettings> <PagerStyle Mode="NextPrev" /> </telerik:RadGrid>
ServerSide Code
protected void CustValLanguage_ServerValidate1(object source, ServerValidateEventArgs args) { // Need here to validate code if (lstLanguage != null || lstLanguage.Count > 0) { if (grdLanguage.MasterTableView.IsItemInserted) { { RadComboBox ddlLanguage_Type_ID = (RadComboBox)grdLanguage.MasterTableView.GetInsertItem().FindControl("ddlLanguage_Type_ID"); for (int i = 0; i < lstLanguage.Count; i++) { if (lstLanguage[i].Language_Type_ID == Convert.ToInt32(ddlLanguage_Type_ID.SelectedValue)) { args.IsValid = false; CustomValidator CustValLanguage = (CustomValidator)grdLanguage.MasterTableView.GetInsertItem().FindControl("CustValLanguage"); CustValLanguage.ErrorMessage = "Already Exists"; } } } } else { // I want code here to check update record already exist or not in the current list collection } } }
private List<Language> lstLanguage { get { object obj = this.Session["lstLanguage"]; if ((!(obj == null))) { return ((List<Language>)(obj)); } List<Language> lst_Lang = new List<Language>(); this.Session["lstLanguage"] = lst_Lang; return lst_Lang; } set { // Adds value to session variable this.Session["lstLanguage"] = value; } }
private void GrdLanguage_ItemCommand(object sender, GridCommandEventArgs e) { switch (e.CommandName) { case "PerformInsert": if (Page.IsValid) { GridEditFormInsertItem insertedItem = (GridEditFormInsertItem)e.Item.OwnerTableView.GetInsertItem(); Language obj = new Language(); obj.Language_ID = (int)this.lstLanguage.Count + 1; obj.Language_Type_ID = Convert.ToInt32(((RadComboBox)insertedItem.FindControl("ddlLanguage_Type_ID")).SelectedValue); obj.Language_Type.Language_Type_Name = ((RadComboBox)insertedItem.FindControl("ddlLanguage_Type_ID")).SelectedItem.Text; obj.Read_Skill = Convert.ToInt32(((RadRating)insertedItem.FindControl("ratReading")).Value); obj.Writing_Skill = Convert.ToInt32(((RadRating)insertedItem.FindControl("ratWriting")).Value); obj.Speaking_Skill = Convert.ToInt32(((RadRating)insertedItem.FindControl("ratSpeaking")).Value); lstLanguage.Add(obj); grdLanguage.Rebind(); } break; case "Update": if (Page.IsValid) { // GridEditFormInsertItem insertedItem = (GridEditFormInsertItem)e.Item.OwnerTableView.GetInsertItem(); GridEditableItem editform = e.Item as GridEditableItem; var index = lstLanguage.FindIndex(p => p.Language_ID == (int)editform.OwnerTableView.DataKeyValues[editform.ItemIndex]["Language_ID"]); Language obj = new Language(); obj.Language_Type_ID = Convert.ToInt32(((RadComboBox)editform.FindControl("ddlLanguage_Type_ID")).SelectedValue); obj.Language_Type.Language_Type_Name = ((RadComboBox)editform.FindControl("ddlLanguage_Type_ID")).SelectedItem.Text; obj.Read_Skill = Convert.ToInt32(((RadRating)editform.FindControl("ratReading")).Value); obj.Writing_Skill = Convert.ToInt32(((RadRating)editform.FindControl("ratWriting")).Value); obj.Speaking_Skill = Convert.ToInt32(((RadRating)editform.FindControl("ratSpeaking")).Value); lstLanguage[index] = obj; grdLanguage.Rebind(); } break; default: break; } } private void GrdLanguage_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { grdLanguage.DataSource = lstLanguage; }
Hello.
I have gird and I add "Export to excel" to it.it Works fine.
but I want Add Summation of some Columns of it after the last row in Excel file which is not in Grid.
And second Question , Users can filter my grid and it Works fine But I want when he/she Click on "Export to Excel" button, it Exports All of Data to excel Not just Filtered. Is it Possible?
Hi,
I have nested checkboxes when I select a checkbox it should select all the checkboxes below as well and same when I deselect top most checkbox. However this isn't happening. I have the following code.
aspx:
<telerik:RadGrid ID="rgExpiringServices" OnNeedDataSource="rgExpiringServices_NeedDataSource" OnItemCommand="rgExpiringServices_ItemCommand" AllowFilteringByColumn="true" OnPreRender="rgExpiringServices_PreRender" runat="server" Skin="Black" AllowMultiRowSelection="true"> <ClientSettings Selecting-AllowRowSelect="true" Selecting-UseClientSelectColumnOnly="true" ClientEvents-OnRowSelected="nestedGridRowSelected" ClientEvents-OnRowDeselected="nestedGridRowDeselected"></ClientSettings> <MasterTableView DataKeyNames="ObjectId, Name" AutoGenerateColumns="false" ShowFooter="true" HierarchyLoadMode="ServerOnDemand" EnableHierarchyExpandAll="true" AllowFilteringByColumn="true"> <Columns> <telerik:GridClientSelectColumn UniqueName="BulkActionSelect" HeaderText="<%$ Resources:NrttLanguage, BulkAction %>" ></telerik:GridClientSelectColumn> <telerik:GridButtonColumn ButtonType="ImageButton" ButtonCssClass="btnTiny btnApprove" UniqueName="Renew" CommandName="Renew" ImageUrl="~/Images/blank16.png" HeaderStyle-Width="16px" ItemStyle-Width="16px" ></telerik:GridButtonColumn> <telerik:GridButtonColumn ButtonType="ImageButton" ButtonCssClass="btnTiny btnDelete" UniqueName="Terminate" CommandName="Terminate" ImageUrl="~/Images/blank16.png" HeaderStyle-Width="16px" ItemStyle-Width="16px" ></telerik:GridButtonColumn> <telerik:GridNumericColumn UniqueName="Name" DataField="Name" HeaderText="<%$ Resources:NrttLanguage, CustomerReference %>" DataType="System.String"> </telerik:GridNumericColumn> <telerik:GridDateTimeColumn DataField="DateExpiration" DataType="System.DateTime" FilterControlAltText="Filter DateImportant column" HeaderText="<%$ Resources:NrttLanguage, DateExpiring%>" SortExpression="DateImportant" UniqueName="DateImportant" DataFormatString="{0:d}" > </telerik:GridDateTimeColumn> <telerik:GridNumericColumn UniqueName="Daysuntilexpired" DataField="DaysUntilExpiration" HeaderText="<%$ Resources:NrttLanguage, daysuntilexpired %>" > </telerik:GridNumericColumn> <telerik:GridBoundColumn UniqueName="Services" DataField="ServiceInReferenceString" HeaderText="<%$ Resources:NrttLanguage, Services %>" ></telerik:GridBoundColumn> <telerik:GridNumericColumn UniqueName="Parcelcount" DataField="RealInReference" HeaderText="<%$ Resources:NrttLanguage, ParcelCount %>" > </telerik:GridNumericColumn> </Columns> <NestedViewTemplate> <nrtt:CustomerGrid ID="ucExpiringRealServices" runat="server" AllowSelection="true" OnNeedDataSource="ucExpiringRealServices_NeedDataSource" OnNeedColumnCollection="ucExpiringRealServices_NeedColumnCollection" OnItemDataBound="ucExpiringRealServices_ItemDataBound" ></nrtt:CustomerGrid> </NestedViewTemplate> </MasterTableView> </telerik:RadGrid>
JavaScript:
function nestedGridRowSelected(sender, args) { var item = args.get_gridDataItem(); var nv = item.get_nestedViews(); if (nv !== undefined && nv !== null) { nv.selectAllItems(); } else { //is child var mt = sender.get_masterTableView(); var dtv = args.get_tableView(); mt.selectItem(dtv.get_parentRow()); }}function nestedGridRowDeselected(sender, args) { var item = args.get_gridDataItem(); var nv = item.get_nestedViews()[0]; if (nv !== undefined && nv !== null) { nv.clearSelectedItems(); } else { //is child var mt = sender.get_masterTableView(); var dtv = args.get_tableView(); mt.selectItem(dtv.get_parentRow()); }}When I debug it tells me that item.get_nestedViews() is undefined. Any help appreciated.
Thanks!

Hi,
When i paste text from MS word (Times New roman, 12 pt) in to the editor, the editor is changing the font name to 'Segoe UI' for some part of the text automatically. This issue is with only some of the word documents i have. I am not able to attach the same word document with this thread as there is no option to attach word format but i have tested it on http://demos.telerik.com/aspnet-ajax/editor/examples/overview/defaultcs.aspx link and the same issue exists.
