or
Hi,
Plesae let us know how to achieve the following.
1. Avoid loading the user control in nested view template when outer grid/page loads.
2. Allow loading of user control ONLY for the expanded row of the outer grid.
Find below the source code to work on. Any prompt help on this is really appreciated.
Note: The source code really doesn't have any parent and child relation in the data that it displays because it just a sample.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="NVT._Default" %> <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> <%@ Register Src="PlayerDetails.ascx" TagName="PlayerDetails" TagPrefix="Player" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <telerik:RadScriptManager ID="scriptManager" runat="server"></telerik:RadScriptManager> <telerik:RadGrid ID="grdPlayers" runat="server" OnNeedDataSource="GetPlayers" AutoGenerateColumns="true" OnItemCommand="grdPlayers_ItemCommand" OnItemCreated="grdPlayers_ItemCreated" > <MasterTableView> <NestedViewTemplate> <asp:Panel runat="server" ID="InnerContainer" Visible="false"> <Player:PlayerDetails id="ucPlayerDetails" runat="server"></Player:PlayerDetails> </asp:Panel> </NestedViewTemplate> </MasterTableView> </telerik:RadGrid> </div> </form> </body> </html>using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Telerik.Web.UI; using System.Data; namespace NVT { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void GetPlayers(object source, GridNeedDataSourceEventArgs e) { DataSet dsPlayers = new DataSet(); DataTable tblPlayers = new DataTable(); tblPlayers.Columns.Add("Name"); tblPlayers.Columns.Add("Age"); tblPlayers.Rows.Add("Sachin", "36"); tblPlayers.Rows.Add("Virender", "30"); dsPlayers.Tables.Add(tblPlayers); grdPlayers.DataSource = dsPlayers; } protected void grdPlayers_ItemCommand(object source, GridCommandEventArgs e) { if (e.CommandName == RadGrid.ExpandCollapseCommandName && e.Item is GridDataItem) { ((GridDataItem)e.Item).ChildItem.FindControl("InnerContainer").Visible = !e.Item.Expanded; } } protected void grdPlayers_ItemCreated(object sender, GridItemEventArgs e) { if (e.Item is GridNestedViewItem) { e.Item.FindControl("InnerContainer").Visible = ((GridNestedViewItem)e.Item).ParentItem.Expanded; } } } } <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PlayerDetails.ascx.cs" Inherits="NVT.PlayerDetails" %> <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> <telerik:RadGrid ID="grdPlayerDetails" runat="server" AutoGenerateColumns="true"> </telerik:RadGrid>using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using Telerik.Web.UI; namespace NVT { public partial class PlayerDetails : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { GetPlayerDetails(); grdPlayerDetails.DataBind(); } protected void GetPlayerDetails() { DataSet dsPlayerDetails = new DataSet(); DataTable tblPlayerDetails = new DataTable(); tblPlayerDetails.Columns.Add("Name"); tblPlayerDetails.Columns.Add("Age"); tblPlayerDetails.Rows.Add("Sachin", "36"); tblPlayerDetails.Rows.Add("Virender", "30"); dsPlayerDetails.Tables.Add(tblPlayerDetails); grdPlayerDetails.DataSource = dsPlayerDetails; } } }Thanks,
Kishore
.rpExpanded { background-color:#3586CE !important;}.rpSelected { background-color:#3586CE !important;}.wwgToolbar { background-color:#3586CE !important;border-color:#3586CE !important;}<telerik:GridTemplateColumn DataField="ErrorText" HeaderButtonType="TextButton" HeaderText="Poster Response" UniqueName="ErrorText" Visible="true" SortExpression="ErrorText"> <HeaderStyle HorizontalAlign="left" Width="135px" /> <ItemStyle HorizontalAlign="left" /> <ItemTemplate> <asp:Label ID="lblErrorText" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ErrorText")%>'> </asp:Label> </ItemTemplate> </telerik:GridTemplateColumn><telerik:RadGrid ID="radIssues" runat="server" AllowFilteringByColumn="false" AllowSorting="True" nItemCommand="radIssues_ItemCommand" CellSpacing="0" CssClass="grid-float" DataSourceID="ldsIssueLog" ShowStatusBar="True" Skin="Sitefinity" Width="70%"><MasterTableView AutoGenerateColumns="false" DataSourceID="ldsIssueLog" GroupLoadMode="Client" DataKeyNames="issueID" ClientDataKeyNames="issueID"> <Columns> <telerik:GridBoundColumn DataField="issueID" HeaderText="" UniqueName="issueID" Visible="true"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="issueTitle" HeaderText="Title" ReadOnly="True" SortExpression="issueTitle" UniqueName="issueTitle"></telerik:GridBoundColumn><telerik:GridBoundColumn DataField="issueText" HeaderText="Issue" ReadOnly="True" SortExpression="issueText" UniqueName="issueText"></telerik:GridBoundColumn><telerik:GridBoundColumn DataField="issueDateCreated" HeaderText="Created Date" ReadOnly="True" SortExpression="issueText" UniqueName="issueDateCreated"></telerik:GridBoundColumn><telerik:GridBoundColumn DataField="createdBy" HeaderText="Created By" ReadOnly="True" SortExpression="issueText" UniqueName="createdBy"></telerik:GridBoundColumn><telerik:GridBoundColumn DataField="issueDateAmended" HeaderText="Amended Date" ReadOnly="True" SortExpression="issueText" UniqueName="issueDateAmended"></telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="amendedBy" HeaderText="Amended By" ReadOnly="True" SortExpression="issueText" UniqueName="amendedBy"></telerik:GridBoundColumn><telerik:GridTemplateColumn AllowFiltering="false" HeaderText="Comment" UniqueName="issueComment"> <ItemTemplate> <telerik:RadTextBox ID="txtNote" runat="server" InputType="Text" Rows="2" Text='<%# Eval("issueComment")%>' TextMode="MultiLine"> </telerik:RadTextBox> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Complete" ItemStyle-Width="100px" UniqueName="chkComplete"> <ItemTemplate> <input type="checkbox" id="chkComplete" onclick="checkChangedEvent();" runat="server" checked='<%# Eval("completed")%>' /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn> <ItemTemplate> <a class="popup-link" href='dlgAddNewIssue.aspx?issueID=<%# Eval("issueID")%>&instructionID=<%=Int32.Parse(Request.QueryString["instructionID"])%>&panelID=<%= Request.QueryString["panelID"]%>&sale=<%= Request.QueryString["sale"]%>' title="Edit Issue">[Edit] </a> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn> <ItemTemplate> <a class="popup-link" href='dlgRemoveIssue.aspx?issueID=<%# Eval("issueID")%>&instructionID=<%=Int32.Parse(Request.QueryString["instructionID"])%>&panelID=<%= Request.QueryString["panelID"]%>&sale=<%= Request.QueryString["sale"]%>' title="Remove Issue">[Remove] </a> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridButtonColumn ButtonType="PushButton" Text="Completion Note" CommandName="transfer"> </telerik:GridButtonColumn> </Columns> </MasterTableView> </telerik:RadGrid>01.if (e.Item.ItemType == GridItemType.AlternatingItem || e.Item.ItemType == GridItemType.Item)02. {03. GridDataItem item = e.Item as GridDataItem;04. // using DataKey05. string id = item.GetDataKeyValue("IssueID").ToString();06. 07. //int issueID;08. 09. //var issuesIdCheck = item.GetDataKeyValue("issueID").ToString();10. 11. //if (int.TryParse(item["IssueID"].Text, out issueID))12. //if (int.TryParse(id, out issueID))13. //{14. using (var db = new dataDataContext())15. {16. issue objIssue = db.issues.FirstOrDefault(f => f.issueID == int.Parse(id));17. if (objIssue != null)18. {19. PostCompletionIssue objCompletionNote = new PostCompletionIssue()20. {21. FK_InstructionID = int.Parse(Request.QueryString["instructionID"]),22. postCompletionIssueCreatedDate = DateTime.Now,23. postCompletionText = objIssue.issueText,24. postCompletionTitle = objIssue.issueTitle25. };26. 27. db.PostCompletionIssues.InsertOnSubmit(objCompletionNote);28. db.SubmitChanges();29. 30. RadAjaxPanel5.ResponseScripts.Add(String.Format("$find('{0}').ajaxRequest();",31. RadAjaxPanel7.ClientID));32. RadAjaxPanel5.Alert("Added to completion notes.");33. 34. }35. }36. }