Hi,
I have table in Database with fields: id, title, text, position.
Every record in table it is RadDock control.
I need on load page add RadDock Control in RadZone with position from database.
I can add RadDock in RadZone, but position RadDock is not position from database.
How I can make it?
my aspx file:
my cs file:
Thanks!!!!!!!
I have table in Database with fields: id, title, text, position.
Every record in table it is RadDock control.
I need on load page add RadDock Control in RadZone with position from database.
I can add RadDock in RadZone, but position RadDock is not position from database.
How I can make it?
my aspx file:
| <telerik:RadDockLayout ID="RadDockLayout1" runat="server" OnLoadDockLayout="RadDockLayout1_LoadDockLayout" |
| OnSaveDockLayout="RadDockLayout1_SaveDockLayout" Skin="Vista"> |
| <div style="float:left;"> |
| <telerik:RadDockZone ID="rdZone" runat="server" Height="100%" Skin="Vista" Width="500px"> |
| </telerik:RadDockZone> |
| </div> |
| </telerik:RadDockLayout> |
my cs file:
| protected void Page_Init(object sender, EventArgs e) |
| { |
| if (!IsPostBack) |
| { |
| //data - this is DataSet; da - this is DataAdapter |
| da.Fill(data); |
| for (int i = 0; i < data.Rows.Count; i++) |
| { |
| RadDock dock = CreateRadDock(data[i].Title, data[i].Text, data[i].Id, data[i].Position-1); |
| rdZone.Controls.Add(dock); |
| ScriptManager.RegisterStartupScript( |
| dock, |
| this.GetType(), |
| "AddDock", |
| string.Format(@"function _addDock() {{ |
| Sys.Application.remove_load(_addDock); |
| $find('{1}').dock($find('{0}')); |
| $find('{0}').doPostBack('DockPositionChanged'); |
| }}; |
| Sys.Application.add_load(_addDock);", dock.ClientID, rdZone.ClientID), |
| true); |
| } |
| else |
| for (int i = 0; i < CurrentDockStates.Count; i++) |
| { |
| RadDock dock = CreateRadDockFromState(CurrentDockStates[i]); |
| RadDockLayout1.Controls.Add(dock); |
| } |
| } |
| private List<DockState> CurrentDockStates |
| { |
| get |
| { |
| List<DockState> _currentDockStates = (List<DockState>)Session["CurrentDockStatesDynamicDocks"]; |
| if (Object.Equals(_currentDockStates, null)) |
| { |
| _currentDockStates = new List<DockState>(); |
| Session["CurrentDockStatesDynamicDocks"] = _currentDockStates; |
| } |
| return _currentDockStates; |
| } |
| set |
| { |
| Session["CurrentDockStatesDynamicDocks"] = value; |
| } |
| } |
| private RadDock CreateRadDockFromState(DockState state) |
| { |
| RadDock dock = new RadDock(); |
| dock.ID = string.Format("RadDock{0}", state.UniqueName); |
| dock.DefaultCommands = Telerik.Web.UI.Dock.DefaultCommands.ExpandCollapse; |
| dock.Style.Add("padding-bottom", "10px"); |
| dock.ApplyState(state); |
| return dock; |
| } |
| private RadDock CreateRadDock(string title, string text, int id, int position) |
| { |
| int docksCount = CurrentDockStates.Count; |
| RadDock dock = new RadDock(); |
| dock.UniqueName = Guid.NewGuid().ToString(); |
| dock.ID = string.Format("RadDock{0}", dock.UniqueName); |
| dock.Title = title; |
| dock.Text = text; |
| dock.Skin = "Vista"; |
| dock.Style.Add("padding-bottom", "10px"); |
| dock.Collapsed = true; |
| dock.DefaultCommands = Telerik.Web.UI.Dock.DefaultCommands.ExpandCollapse; |
| dock.Attributes.Add("id", id.ToString()); |
| return dock; |
| } |
| protected void RadDockLayout1_LoadDockLayout(object sender, DockLayoutEventArgs e) |
| { |
| foreach (DockState state in CurrentDockStates) |
| { |
| e.Positions[state.UniqueName] = state.DockZoneID; |
| e.Indices[state.UniqueName] = state.Index; |
| } |
| } |
| protected void RadDockLayout1_SaveDockLayout(object sender, DockLayoutEventArgs e) |
| { |
| CurrentDockStates = RadDockLayout1.GetRegisteredDocksState(); |
| } |
Thanks!!!!!!!