This is a migrated thread and some comments may be shown as answers.

RadDocks and State loaded from DB

1 Answer 42 Views
Dock
This is a migrated thread and some comments may be shown as answers.
Sam
Top achievements
Rank 1
Sam asked on 08 May 2009, 08:52 PM
I am loading RadDocks from SQL and state as well, I'm having trouble with RadDock.ApplyState(state)..  There has to be a loop from the database to load the controls but at the same time there has to be a loop to apply the state, does anyone have an example of this?


Here is the code I am talking about, this loop is based on the propery list of DockState

Protected Sub Page_Init(ByVal sender As ObjectByVal e As EventArgs) 
            Dim i As Integer = 0 
            While i < CurrentDockStates.Count 
                Dim dock As RadDock = CreateRadDockFromState(CurrentDockStates(i)) 
                RadDockLayout1.Controls.Add(dock) 
                CreateSaveStateTrigger(dock) 
                System.Math.Max(System.Threading.Interlocked.Increment(i),i - 1) 
            End While 
        End Sub 

However I load the usercontrols into RadDocks with a While Loop from a datareader like this:

   Protected Sub Page_Init(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Init 
        Dim RoleID As Integer 
        Dim drContacts As SqlDataReader 
        Dim control As New Web.UI.Control() 
        Dim count As Integer = 0 
        RadDockZone1.Controls.Clear() 
        RadDockZone0.Controls.Clear() 
        Dim state As New DockState() 
        Dim Edit As String = Utilities.GetSession("Edit Layout Allowed"
        RoleID = Int32.Parse(Utilities.GetSession("PortalRoleID")) 
        drContacts = PortalDataAccess.GetPortalControlsByRoleID(RoleID) 
        If (drContacts.HasRows) Then 
            While (drContacts.Read()) 
                Dim soRadDock As New RadDock() 
                soRadDock.ID = drContacts("ControlID").ToString() 
                soRadDock.Title = drContacts("ControlTitle").ToString() 
                control = LoadControl("UserControls/" & drContacts("ControlName").ToString() & ".ascx"
                soRadDock.ContentContainer.Controls.Add(control) 
                If drContacts("Zone") = 1 Then 
                    CreateSaveStateTriggers(soRadDock) 
                    soRadDock.ApplyState(state) 
                    RadDockZone1.Controls.Add(soRadDock) 
 
                End If 
 
                If drContacts("Zone") = 0 Then 
                    CreateSaveStateTriggers(soRadDock) 
                    soRadDock.ApplyState(state) 
                    RadDockZone0.Controls.Add(soRadDock) 
 
                End If 
 
            End While 
 
            drContacts.Close() 
        End If 
 
    End Sub 

So my problem is in order to call ApplyState(State) in Page_Init and get the correct closed , collapsed state from the DB I need to have 2 loops........ Not sure how to accomplish this. The underlying issue is the Closed and Collapsed state is being overwritten before the controls render and Im losing those 2 pieces of state.


Thanks!
Sam



1 Answer, 1 is accepted

Sort by
0
Petio Petkov
Telerik team
answered on 12 May 2009, 02:04 PM
Hi Sam,

I created for you a simple example which loads/save state in DB and RadDocks are created dynamically - please find it attached. The Dock.ApplyState method is invoked when the RadDock is created from the state.

Sincerely yours,
Petio Petkov
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Tags
Dock
Asked by
Sam
Top achievements
Rank 1
Answers by
Petio Petkov
Telerik team
Share this question
or