Hi,
I have a requirement where I need to have a master page and a RAD menu control on the master page. Now I need a new RAD window on click of any menu item from server side irrespective of the fact whether I am clicking same menu item or any other menu item.
I am creating a new RAD window on click event of every menu item click event from server side code and able to successfully create a new RAD window when I am clicking first time on any menu item. But whenever I clicked on any other menu item or same menu item again, my previously opened RAD window get lost and new rad window appears. I think it is a state issue, seems like page is not able to maintain RAD windows on the post back.
I have also tried creating RAD windows from client side java script as well. I am able to create multiple rad windows using java script on click of any of my menu item but all RAD windows created with java script are getting lost on click of browser’s refresh button and F5 button.
Please let me know the best way to create multiple RAD windows from server side and client side as well along with state management. Please help me out to maintain rad windows even after post back of page where these windows exist.
<telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" /><telerik:RadAjaxPanel runat="server" ID="RadAjaxPanel1" LoadingPanelID="RadAjaxLoadingPanel1"><telerik:RadListBox ID="pasLead_rlb" runat="server" Height="150px" Width="250px" AllowTransfer="true" TransferToID="pasLead_rlbDestination" DataSourceID="paslead_DS" DataTextField="paslead" DataValueField="contactID"></telerik:RadListBox><telerik:RadListBox ID="pasLead_rlbDestination" runat="server" Height="150px" Width="250px" DataKeyField="contactID" AutoPostBackOnTransfer="true" AutoPostBack="true" DataSourceID="pasleadSelected_DS" DataTextField="paslead" DataValueField="contactID" AllowAutomaticUpdates="true" AutoPostBackOnDelete="true" AllowDelete="true"></telerik:RadListBox></telerik:RadAjaxPanel><asp:SqlDataSource ID="pasleadSelected_DS" runat="server" ConnectionString="<%$ ConnectionStrings:myconnection %>" SelectCommand="SELECT contacts.id AS contactID, contacts.name + ' (' + groups.short_name + ')' AS paslead FROM contacts, groups, area_contact_map acm WHERE contacts.groupID = groups.id and contacts.id = acm.contactID and areaID = @id and (acm.blnRemoved IS NULL OR acm.blnRemoved = 0) ORDER BY paslead" DeleteCommand="UPDATE area_contact_map SET update_date = getDate(), update_user = @u, blnRemoved = 1 WHERE areaID = @aid AND contactID = @contactID" InsertCommand="INSERT INTO area_contact_map (areaID, contactID, create_date, create_user, blnRemoved) VALUES (@aid, @contactID, getDate(), @u, 0)"> <SelectParameters> <asp:Parameter Name="id" Type="String" /> </SelectParameters> <DeleteParameters> <asp:Parameter Name="aid" Type="String" /> <asp:Parameter Name="contactID" Type="String" /> <asp:Parameter Name="u" Type="String" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="aid" Type="String" /> <asp:Parameter Name="contactID" Type="String" /> <asp:Parameter Name="u" Type="String" /> </InsertParameters></asp:SqlDataSource>aid = Request.QueryString("i")pasuser = Membership.GetUser.ProviderUserKey.ToString()areaDS.SelectParameters("id").DefaultValue = aidpasleadSelected_DS.SelectParameters("id").DefaultValue = aidpasleadSelected_DS.DeleteParameters("aid").DefaultValue = aidpasleadSelected_DS.DeleteParameters("u").DefaultValue = pasuserpasleadSelected_DS.InsertParameters("aid").DefaultValue = aidpasleadSelected_DS.InsertParameters("u").DefaultValue = pasuser<%@ Page Title="" Language="C#" MasterPageFile="~/Masters/EPSDev3.master" AutoEventWireup="true" CodeFile="PetitionInfo.aspx.cs" Inherits="PetitionInfo" %><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"><style type="text/css"> .VerticalAlign1 { padding-top: 6px; } .rgHeaderDiv { width: 100%; }</style> </asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> <telerik:RadScriptManager ID="RadScriptManager1" runat="server" /> <!-- content start --> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="SignersGrid"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="SignersGrid" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" /> <div style="width: 800px;"> <div style="float: left; background-color: White; padding: 0px;"> <table cellpadding="1" cellspacing="0" border="0" > <tr> <td colspan="5" align="center" > <h2> <asp:Label ID="VoterAuthenticationLabel" runat="server" Text="<%$ Resources:Resource, PetitionInformationLabel %>"></asp:Label> </h2> </td> </tr> <tr> <td width="2%"> </td> <td width="47%" valign="top"> <table > <tr> <td colspan="2" align="left" style="font-weight: normal; height: 12px;"> <asp:Label ID="Label6" runat="server" Font-Bold="true" Text="<%$ Resources:Resource, CandidateInformationLabel%>"></asp:Label> </td> </tr> <tr> <td align="left"> <asp:Label ID="CycleLabel" runat="server" Text="<%$ Resources:Resource, CycleLabel %>"></asp:Label> </td> <td align="left"> <asp:Label ID="ElectionCycleList" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td align="left"> <asp:Label ID="Label1" runat="server" Text="<%$ Resources:Resource, RaceLabel %>"></asp:Label> </td> <td align="left"> <asp:Label ID="PoliticalRaceList" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td align="left"> <asp:Label ID="Label2" runat="server" Text="<%$ Resources:Resource, NameLabel %>"></asp:Label> </td> <td align="left"> <asp:Label ID="CandidateName" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td align="left"> <asp:Label ID="Label3" runat="server" Text="<%$ Resources:Resource, AddressLabel %>"></asp:Label> </td> <td align="left"> <asp:Label ID="CandidateAddress" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td align="left"> <asp:Label ID="Label4" runat="server" Text="<%$ Resources:Resource, CityStZipLabel %>"></asp:Label> </td> <td align="left"> <asp:Label ID="CandidateCity" runat="server" Text=""></asp:Label> <asp:Label ID="CandidateState" runat="server" Text=""></asp:Label> <asp:Label ID="CandidateZipCode" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td align="left"> <asp:Label ID="Label5" runat="server" Text="<%$ Resources:Resource, CountyLabel %>"></asp:Label> </td> <td align="left"> <asp:Label ID="CandidateCountyList" runat="server" Text=""></asp:Label> </td> </tr> </table> </td> <td width="2%"> </td> <td width="47%" valign="top"> <table width="100%"> <tr> <td colspan="2" align="left" style="font-weight: normal; height: 12px;"> <asp:Label ID="Label7" runat="server" Font-Bold="true" Text="<%$ Resources:Resource, ContactInformationLabel%>"></asp:Label> </td> </tr> <tr> <td align="left"> <asp:Label ID="Label8" runat="server" Text="<%$ Resources:Resource, NameLabel %>"></asp:Label> </td> <td align="left"> <asp:Label ID="ContactName" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td align="left"> <asp:Label ID="Label9" runat="server" Text="<%$ Resources:Resource, PhoneLabel %>"></asp:Label> </td> <td align="left"> <asp:Label ID="ContactPhone" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td align="left"> <asp:Label ID="Label10" runat="server" Text="<%$ Resources:Resource, EmailLabel %>"></asp:Label> </td> <td align="left"> <asp:Label ID="ContactEmailAddress" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td align="left"> <asp:Label ID="Label11" runat="server" Text="<%$ Resources:Resource, WebSiteLabel %>"></asp:Label> </td> <td align="left"> <asp:Label ID="ContactWebSiteURL" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td align="left"> <asp:Label ID="Label16" runat="server" Text="<%$ Resources:Resource, LinkToLabel %>"></asp:Label> </td> <td align="left"> <asp:Label ID="LinkToURL" runat="server" Text=""></asp:Label> </td> </tr> </table> </td> <td width="2%"> </td> </tr> <tr> <td colspan="5"> </td> </tr> <tr > <td> </td> <td align="center" valign="middle" colspan="3" > <asp:Label CssClass="VerticalAlign1" ID="PetitionsListTitle" Font-Size="16px" Width="100%" BackColor="#565A43" Height="24px" ForeColor="#ffffff" Font-Bold="true" runat="server" Text="<%$ Resources:Resource, PetitionSignersLabel %>"></asp:Label> </td> <td> </td> </tr> <tr> <td width="2%"> </td> <td colspan="3" valign="middle"> <telerik:RadGrid AutoGenerateColumns="false" ID="SignersGrid" runat="server" Width="99.7%" AllowSorting="true" AllowFilteringByColumn="true" EnableLinqExpressions="false" AllowPaging="false" PageSize="15" BorderWidth="1px" BorderColor="#999999" EnableEmbeddedSkins="true" Skin="Default" DataSourceID="SQLDataSource1" ShowFooter="True" GridLines="None" > <PagerStyle Mode="NextPrevAndNumeric" /> <GroupingSettings CaseSensitive="false" /> <MasterTableView AutoGenerateColumns="false" EditMode="InPlace" AllowFilteringByColumn="True" ShowFooter="True" TableLayout="Auto"> <Columns> <telerik:GridBoundColumn FilterControlWidth="50px" HeaderText="First Name" UniqueName="FirstName" DataField="FirstName" SortExpression="FirstName" > </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="LastName" HeaderText="Last Name" DataField="LastName" SortExpression="LastName" > </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="VoterAddress" HeaderText="Address" DataField="Address" SortExpression="Address" > </telerik:GridBoundColumn > <telerik:GridBoundColumn UniqueName="RemoveSignature" HeaderText="Remove" DataField="CountyId" SortExpression="CountyId" > </telerik:GridBoundColumn> </Columns> </MasterTableView> <ClientSettings> <Scrolling AllowScroll="true" UseStaticHeaders="true" /> </ClientSettings> </telerik:RadGrid> </td> <td width="2%"> </td> </tr> <tr> <td colspan="5" align="center" > <asp:Label ID="Label17" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td colspan="5" align="center" > <asp:Label ID="SignatureCountMessage" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td colspan="5" align="center" > <asp:Label ID="Label18" runat="server" Text=""></asp:Label> </td> </tr> <tr> <td colspan="5" align="center" > </td> </tr> <tr> <td colspan="5" align="center" > </td> </tr> <tr> <td colspan="5" align="center" > </td> </tr> <tr > <td> </td> <td align="center" valign="middle" colspan="3" > <asp:Label CssClass="VerticalAlign1" ID="Label12" Font-Size="16px" Width="100%" BackColor="#565A43" Height="24px" ForeColor="#ffffff" Font-Bold="true" runat="server" Text="<%$ Resources:Resource, SearchPetitionSignersLabel %>"></asp:Label> </td> <td> </td> </tr> <tr> <td colspan="5" align="center" > </td> </tr> <tr> <td colspan="5" align="center" > <asp:Label ID="Label15" runat="server" Text="<%$ Resources:Resource, FirstLastNameLabel %>"></asp:Label> <asp:TextBox ID="SearchFirstName" Width="80px" runat="server" TabIndex="1"></asp:TextBox> <asp:TextBox ID="SearchLastName" Width="80px" runat="server" TabIndex="2"></asp:TextBox> <asp:Label ID="Label13" runat="server" Text="<%$ Resources:Resource, AddressLabel %>"></asp:Label> <asp:TextBox ID="SearchAddress" runat="server" TabIndex="3"></asp:TextBox> </td> </tr> <tr> <td colspan="5" align="center" > <asp:RadioButtonList ID="TypeOfCompare" runat="server" CellSpacing="10" RepeatDirection="Horizontal" > <asp:ListItem Enabled="True" Selected="True" Text="Contains the value anywhere" Value="1" /> <asp:ListItem Enabled="True" Selected="False" Text="Only check the beginning of the entry" Value="2" /> </asp:RadioButtonList> <br /> <asp:Label ID="SearchInstructions" runat="server" Text="<%$ Resources:Resource, SearchInstructionsLabel %>"></asp:Label> </td> </tr> <tr> <td colspan="5" align="center" > </td> </tr> <tr> <td colspan="5" align="center" > </td> </tr> <tr > <td> </td> <td align="center" valign="middle" colspan="3" > <asp:Label CssClass="VerticalAlign1" ID="Label14" Font-Size="16px" Width="100%" BackColor="#565A43" Height="24px" ForeColor="#ffffff" Font-Bold="true" runat="server" Text="<%$ Resources:Resource, CloseAndPrintLabel %>"></asp:Label> </td> <td> </td> </tr> <tr> <td colspan="5" align="center" > </td> </tr> <tr> <td colspan="5" align="center" > <asp:Button ID="ClosePetitionButton" TabIndex="6" runat="server" Text="<%$ Resources:Resource, ClosePetitionBtn %>" /> <asp:Button ID="PrintListButton" TabIndex="7" runat="server" Text="<%$ Resources:Resource, PrintListBtn %>" /> <asp:Button ID="PrintForFilingButton" TabIndex="8" runat="server" Text="<%$ Resources:Resource, PrintForFilingBtn %>" /> </td> </tr> <tr> <td colspan="5" align="center" > </td> </tr> </table> </div> <div class="clear"> </div> </div> <asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:ElectronicPetitionSystemConnectionString %>" ProviderName="System.Data.SqlClient" runat="server"> </asp:SqlDataSource></asp:Content>
[System.Web.Services.WebMethod] public static string txtNoOfInstallment_OnTextChanged(int noOfInstallments) { try { Table tab = new Table(); for (int i = 1; i <= noOfInstallments; i++) { TableRow tr = new TableRow(); TableCell td1 = new TableCell(); TableCell td2 = new TableCell(); TableCell td3 = new TableCell(); TableCell td4 = new TableCell(); Label lblAmt = new Label(); lblAmt.Text = "Installment" + " " + i; TextBox txtAmount = new TextBox(); txtAmount.ID = "txtAmount" + i; Label lblDate = new Label(); lblDate.Text = "Due date"; RadDatePicker dtPickerIstallmentDate = new RadDatePicker(); dtPickerIstallmentDate.ID = "dtPickerIstallmentDate" + i; td1.Controls.Add(lblAmt); td2.Controls.Add(txtAmount); td3.Controls.Add(lblDate); td4.Controls.Add(dtPickerIstallmentDate); tr.Cells.Add(td1); tr.Cells.Add(td2); tr.Cells.Add(td3); tr.Cells.Add(td4); tab.Rows.Add(tr); } System.Text.StringBuilder sb = new System.Text.StringBuilder(); System.IO.StringWriter tw = new System.IO.StringWriter(sb); HtmlTextWriter hw = new HtmlTextWriter(tw); tab.RenderControl(hw); return sb.ToString(); } catch(Exception ex) { return ex.Message; } }{System.NullReferenceException: Object reference not set to an instance of an object. at Telerik.Web.UI.DatePickingInput.RenderBeginTag(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) at Telerik.Web.UI.RadWebControl.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at Telerik.Web.UI.RadDatePicker.AddControlComponents(HtmlTextWriter writer) at Telerik.Web.UI.RadDatePicker.RenderChildren(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) at Telerik.Web.UI.RadWebControl.RenderContents(HtmlTextWriter writer) at Telerik.Web.UI.RadDatePicker.RenderContents(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) at Telerik.Web.UI.RadWebControl.Render(HtmlTextWriter writer) at Telerik.Web.UI.RadDatePicker.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.WebControls.TableCell.RenderContents(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at System.Web.UI.WebControls.Table.RenderContents(HtmlTextWriter writer) at System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) at System.Web.UI.Control.RenderControl(HtmlTextWriter writer) at pagename.txtNoOfInstallment_OnTextChanged1(Object sender, EventArgs e) in path/pagename.aspx.cs:line "tab.RenderControl(hw);"}
//Master Page Code Behind
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
}
//Web Page Code Behind
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using Telerik.Web.UI;
public partial class HierarchyRadGrd : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
}
myHomeContent.Controls.Add(GetBandRadDock(2, 3, "Plan Details"));
if (ScriptManager.GetCurrent(this).IsInAsyncPostBack)
{
string controlPath = string.Empty;
string sourceid = "";
try
{
if (ScriptManager.GetCurrent(this).AsyncPostBackSourceElementID.Contains("$"))
sourceid = ScriptManager.GetCurrent(this).AsyncPostBackSourceElementID.Split('$')[2];
else
sourceid = ScriptManager.GetCurrent(this).AsyncPostBackSourceElementID.Split('_')[2];
controlPath = "UserControlRadGrid.ascx";
LoadUserControl(sourceid);
}
catch (IndexOutOfRangeException ExoutOf)
{
}
}
}
protected void LoadUserControl(string _BandId)
{
string SourceString = "";
string updateControl = "";
if (ScriptManager.GetCurrent(this).AsyncPostBackSourceElementID.Contains("$"))
SourceString = ScriptManager.GetCurrent(this).AsyncPostBackSourceElementID;
else
SourceString = ScriptManager.GetCurrent(this).AsyncPostBackSourceElementID;
string IdVal = SourceString;
string ajpCtrl = "UpdatePanel3";
string _sActualPath = SourceString;
AddControl(_sActualPath, ajpCtrl, "UserControlRadGrid.ascx", _BandId);
}
protected void AddControl(string sourcedock, string ajaxp, string path, string _sBandId)
{
RadDock SourceDock = this.FindControl(sourcedock) as RadDock;
UpdatePanel SourcePanel = (UpdatePanel)SourceDock.ContentContainer.FindControl(ajaxp);
SourcePanel.ContentTemplateContainer.Controls.Clear();
UserControl mycon = (UserControl)LoadControl(path);
mycon.ID = "DC" + _sBandId;
switch (_sBandId)
{
case "3":
((UserControlRadGrid)mycon)._ShowBand = false;
break;
}
SourcePanel.ContentTemplateContainer.Controls.Add(mycon);
}
private RadDock GetBandRadDock(int Sequence, int _iBandId, string _sBandTitle)
{
RadDock _radDock = new RadDock();
_radDock.CommandsAutoPostBack = true;
_radDock.DockMode = DockMode.Docked;
_radDock.DefaultCommands = Telerik.Web.UI.Dock.DefaultCommands.ExpandCollapse;
_radDock.Command += new DockCommandEventHandler(_radDock_Command);
_radDock.OnClientCommand = "OnDockExpand";
_radDock.ForbiddenZones = new string[] { "DockZone" };
_radDock.DockMode = DockMode.Default;
_radDock.Collapsed = true;
_radDock.ExpandText = "Loading...";
_radDock.EnableAnimation = true;
_radDock.Title = _sBandTitle;
_radDock.Font.Bold = true;
_radDock.ID = _iBandId.ToString();
UpdatePanel uPanel = new UpdatePanel();
uPanel.ID = "UpdatePanel" + _iBandId.ToString();
uPanel.UpdateMode = UpdatePanelUpdateMode.Conditional;
uPanel.RenderMode = UpdatePanelRenderMode.Inline;
AsyncPostBackTrigger oTrigger = new AsyncPostBackTrigger();
oTrigger.ControlID = _radDock.ID;
uPanel.Triggers.Add(oTrigger);
Label oLabel = new Label();
oLabel.Text = "Loading....";
oLabel.ID = "ldng";
uPanel.ContentTemplateContainer.Controls.Add(oLabel);
_radDock.ContentContainer.Controls.Add(uPanel);
return _radDock;
}
void _radDock_Command(object sender, DockCommandEventArgs e)
{
Control _DynamicControl = new Control();
RadDock oDock = new RadDock();
oDock = sender as RadDock;
oDock.AutoPostBack = false;
oDock.CommandsAutoPostBack = false;
UpdatePanel uPanel = new UpdatePanel();
string uId = "UpdatePanel" + oDock.ID;
uPanel = (UpdatePanel)oDock.ContentContainer.FindControl(uId);
uPanel.ContentTemplateContainer.Controls.Clear();
int _iBandId = Convert.ToInt32(oDock.ID);
if (oDock.Collapsed)
{
Label oLabel = new Label();
oLabel.Text = "Loading....";
uPanel.Controls.Clear();
uPanel.Controls.Add(oLabel);
}
else
{
switch (_iBandId)
{
case 3:
_DynamicControl = LoadControl("UserControlRadGrid.ascx");
_DynamicControl.ID = "DC3";
_DynamicControl.GetType().GetProperty("ShowBand").SetValue(_DynamicControl, false, null);
break;
}
uPanel.ContentTemplateContainer.Controls.Add(_DynamicControl);
}
}
public void RaisePostBackEvent(string eventArgument) { }
}
//User Control Code Behind
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using Telerik.Web.UI;
public partial class UserControlRadGrid : System.Web.UI.UserControl
{
private SqlConnection _con;
private SqlDataAdapter _adp;
private static DataTable _dt;
public bool _ShowBand = true;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
RadGrid1.DataSource = BindData();
RadGrid1.DataBind();
}
RadGrid1.DataSource = BindData();
RadGrid1.DataBind();
}
public DataTable BindData()
{
try
{
_con = new SqlConnection(ConfigurationManager.ConnectionStrings["ShopConnectionString"].ConnectionString);
_adp = new SqlDataAdapter("SELECT * FROM Shop", _con);
_dt = new DataTable();
_adp.Fill(_dt);
}
catch (Exception e)
{
Response.Write(e.Message.ToString());
}
return _dt;
}
protected void RadGrid1_DetailTableDataBind(object source, GridDetailTableDataBindEventArgs e)
{
GridDataItem dataItem = (GridDataItem)e.DetailTableView.ParentItem;
switch (e.DetailTableView.Name)
{
case "Category":
{
string _shopId = dataItem.GetDataKeyValue("ShopID").ToString();
e.DetailTableView.DataSource = GetNextLevelCategory(_shopId);
break;
}
case "Product":
{
string _categoryID = dataItem.GetDataKeyValue("CategoryID").ToString();
e.DetailTableView.DataSource = GetNextLevelProduct(_categoryID);
break;
}
}
}
protected DataTable GetNextLevelCategory(string _shopId)
{
try
{
_con = new SqlConnection(ConfigurationManager.ConnectionStrings["ShopConnectionString"].ConnectionString);
_adp = new SqlDataAdapter("SELECT * FROM Category WHERE ShopId=" + _shopId, _con);
_dt = new DataTable();
_adp.Fill(_dt);
}
catch (Exception e)
{
Response.Write(e.Message.ToString());
}
return _dt;
}
protected DataTable GetNextLevelProduct(string _categoryID)
{
try
{
_con = new SqlConnection(ConfigurationManager.ConnectionStrings["ShopConnectionString"].ConnectionString);
_adp = new SqlDataAdapter("SELECT * FROM Products WHERE CategoryId=" + _categoryID, _con);
_dt = new DataTable();
_adp.Fill(_dt);
}
catch (Exception e)
{
Response.Write(e.Message.ToString());
}
return _dt;
}
}
<!--Master Page--><%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><!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>Untitled Page</title></head><body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" EnableScriptGlobalization="true" AsyncPostBackTimeout="600" ScriptMode="Release"/> <div> <asp:contentplaceholder id="ContentPlaceHolder1" runat="server"> </asp:contentplaceholder> </div> </form></body></html><!--Web Page--><%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="HierarchyRadGrd.aspx.cs" Inherits="HierarchyRadGrd" Title="Untitled Page" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><%@ Register Src="UserControlRadGrid.ascx" TagName="PlanDetailsUCSample" TagPrefix="control" %><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"><script type="text/javascript">function OnDockExpand(sender,args){ if(sender._collapsed == true) { args._cancel = true; } else { if(navigator.appName != "Netscape") { if(sender._contentContainer.childNodes[0].childNodes.length > 1) args.set_cancel(true); } else { if(sender._contentContainer.children[0].children.length > 1) args.set_cancel(true); } }}</script><telerik:RadDockLayout ID="dckLayout" runat="server"> <telerik:RadDockZone ID="myHomeContent" runat="server" FitDocks="true" Font-Bold="true" BorderStyle="None" Orientation="Vertical"> </telerik:RadDockZone></telerik:RadDockLayout> <center> <table cellpadding="0" cellspacing="0" width="97%"> <tr> <td> <control:plandetailsucsample id="PlanDetailsUCSample" runat="server" /> </td> </tr> </table> </center> <br /> <br /> </asp:Content><!--User Control--><%@ Control Language="C#" AutoEventWireup="true" CodeFile="UserControlRadGrid.ascx.cs" Inherits="UserControlRadGrid" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><%--<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="RadGrid1"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManager>--%><telerik:RadGrid ID="RadGrid1" runat="server" Width="60%" AutoGenerateColumns="false" OnDetailTableDataBind="RadGrid1_DetailTableDataBind" RegisterWithScriptManager="true"> <MasterTableView DataKeyNames="ShopID"> <Columns> <telerik:GridBoundColumn HeaderText="ShopID" DataField="ShopID"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="ShopName" DataField="ShopName"> </telerik:GridBoundColumn> </Columns> <DetailTables> <telerik:GridTableView DataKeyNames="CategoryID" Name="Category"> <Columns> <telerik:GridBoundColumn HeaderText="CategoryID" DataField="CategoryID"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="CategoryName" DataField="CategoryName"> </telerik:GridBoundColumn> </Columns> <DetailTables> <telerik:GridTableView Name="Product"> <Columns> <telerik:GridBoundColumn HeaderText="ProductID" DataField="ProductID"> </telerik:GridBoundColumn> <telerik:GridBoundColumn HeaderText="ProductName" DataField="ProductName"> </telerik:GridBoundColumn> </Columns> </telerik:GridTableView> </DetailTables> </telerik:GridTableView> </DetailTables> </MasterTableView></telerik:RadGrid>