Hello
I'm trying to copy the docklayout from one page and try to recreate it in another page.
Here is my code-
Default.aspx
Default.aspx.cs
In receivingPage.aspx i dont have any controls and i dynamically try to add the dock controls obtained from the other page by creating a dock layout programatically.
receivingPage.aspx.cs
But I'm getting emtpy docklayout. Any ideas?
I'm trying to copy the docklayout from one page and try to recreate it in another page.
Here is my code-
Default.aspx
<div><telerik:RadDockLayout ID="dockLayout" runat="server" OnSaveDockLayout="dockLayout_SaveDockLayout"><telerik:RadDockZone ID="dockZone" runat="server"><telerik:RadDock ID="dock" runat="server" UniqueName="dock1"><Commands></Commands><ContentTemplate><asp:TextBox ID="txtName" runat="server" Text="Dock1"></asp:TextBox><br /><asp:Button ID="btnOK" runat="server" Text="OK1" /></ContentTemplate></telerik:RadDock></telerik:RadDockZone><br /><br /><telerik:RadDockZone ID="RadDockZone1" runat="server"><telerik:RadDock ID="RadDock1" runat="server" UniqueName="dock2"><Commands></Commands><ContentTemplate><asp:TextBox ID="TextBox1" runat="server" Text="Dock2"></asp:TextBox><br /><asp:Button ID="Button1" runat="server" Text="OK2" /></ContentTemplate></telerik:RadDock></telerik:RadDockZone></telerik:RadDockLayout><div style="width:100%;text-align:center"><asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" /></div></div>Default.aspx.cs
protected void dockLayout_SaveDockLayout(object sender, DockLayoutEventArgs e){ List<DockState> dockState = dockLayout.GetRegisteredDocksState(); JavaScriptSerializer ser = new JavaScriptSerializer(); Session["dock"] = ser.Serialize(dockState);}protected void btnSave_Click(object sender, EventArgs e){ Response.Redirect("receivingPage.aspx");}In receivingPage.aspx i dont have any controls and i dynamically try to add the dock controls obtained from the other page by creating a dock layout programatically.
receivingPage.aspx.cs
public partial class receivingPage : System.Web.UI.Page{ private List<DockState> dockStates; private RadDockLayout dockLayout; protected override void OnInit(EventArgs e) { dockLayout = new RadDockLayout(); dockLayout.LoadDockLayout += new DockLayoutEventHandler(dockLayout_LoadDockLayout); JavaScriptSerializer ser = new JavaScriptSerializer(); dockStates = ser.Deserialize<List<DockState>>(Page.Session["dock"].ToString()); for (int i = 0; i < dockStates.Count; i++) { RadDock dock = new RadDock(); dock.ID = string.Format("RadDock{0}", i); dock.ApplyState(dockStates[i]); dockLayout.Controls.Add(dock); } this.Controls.Add(dockLayout); } protected void Page_Load(object sender, EventArgs e) { } void dockLayout_LoadDockLayout(object sender, DockLayoutEventArgs e) { foreach (DockState state in dockStates) { e.Positions[state.UniqueName] = state.DockZoneID; e.Indices[state.UniqueName] = state.Index; } } }But I'm getting emtpy docklayout. Any ideas?