I’m creating docks dynamically and store them in a session.It’s based on your example “Dynamically Created Docks”.
I add many docks(more than 5) when I ckick button Add-Dock. But I only see 1 dock states in RadDockZone, the others state on the upper left corner of the page. When I drap a dock from the upper left corner of the page to a RadDockZone or some where, the left docks on the upper left corner of the page are disappear. After I refresh the page, I will see the left docks. Is there any thing I need to notice? So I can add many docks one time to the right RadDockZone and the docks will not disappear!!
8 Answers, 1 is accepted
From the provided description it seems to me that most probably you have problems with the script that is registered in the ButtonAddDock_Click handler. This script should have a different key for every new dock that you add out of the total 5 docks that you want to add at once. In case this clue does not help you, please send us your running project so that we can run it on our side and investigate why the problem occurs. To be able to attach files to your thread you need to open a support ticket as demonstrated in the attached instructions.
Sincerely yours,
Petya
the Telerik team
Instantly find answers to your questions at the new Telerik Support Center
Hi,
did u get the solution for ur prbm.I too have the same prbm...
I gave unique id to script in each loop as
ScriptManager.RegisterStartupScript(dock,
Me.GetType(), "AddDock" + dock.ClientID, 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, RadDockZone1.ClientID), True)
But Still the same prbm exist..only last dock is coming correctly inside the raddock eventhgh, the last dock still does not follow the style of dockzone..all other docks are created at the left corner of the page,one over the other..
Plz help me....
Thanks
You should invoke "$find('{0}').doPostBack('DockPositionChanged'')" only for the latest object.
Please find attached an example, which illustrates how to add more than one RadDocks at once.
Greetings,
Petio Petkov
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
Sir,
I am creating mutiple docks in page_load..
I am getting an error
The control must be in the control tree of a page.
Parameter name: control
The code is
<telerik:RadDockLayout runat="server" ID="DkLayoutDocMain" Skin="Office2007" onsavedocklayout="DkLayoutDocMain_SaveDockLayout" |
onloaddocklayout="DkLayoutDocMain_LoadDockLayout" StoreLayoutInViewState="false" EnableViewState="false"> |
<telerik:raddockzone runat="server" id="RadDockZone1" Style="float:left;margin-right:10px;border-width:0px" Orientation="Horizontal" Skin="Office2007" Width="100%"> |
</telerik:raddockzone> |
Protected Sub Page_Load |
scriptdock = |
"function _addDock() {{Sys.Application.remove_load(_addDock);" |
for i=0 to 2 |
scriptdockscriptdock = scriptdock + |
"}};Sys.Application.add_load(_addDock);" |
Dim |
dock As RadDock = CreateDock(i) |
RadDockZone1.Controls.Add(dock) |
scriptdockscriptdock = scriptdock + |
String.Format("$find('{1}').dock($find('{0}'));", dock.ClientID, RadDockZone1.ClientID) |
latestDock = dock |
next |
scriptdockscriptdock = scriptdock + "}};Sys.Application.add_load(_addDock);" |
UI.ScriptManager.RegisterStartupScript(latestDock, |
Me.GetType(), "AddDock", scriptdock, True) |
plz help me..
I tried to google your error and can't even find it !!!! So by the logic, this error must be some kind of skipping something trivial in the code. Do you set IDs of the controls ??
Vyrban
hi,
The create dock fn is lik this
Protected Function CreateDock(ByVal i as integer) As RadDock |
Dim strScript As String |
Dim dock As New RadDock() |
dock.UniqueName = Guid.NewGuid().ToString() |
dock.ID = String.Format("RadDock{0}", dock.UniqueName) |
dock.Text =i.tostring() |
dock.Commands.Add(New DockCloseCommand()) |
dock.Commands.Add(New DockExpandCollapseCommand()) |
dock.EnableDrag = True |
dock.DockMode = DockMode.Default |
dock.Style("width") = "80%" |
strScript = "<script language=javascript>" |
strScript += "function SetTheDockHandle(dock, args){ var dockobj = $find('<%= dock.ClientID %>');dock.set_handle(dockobj.get_element());}" |
strScript += "<" |
strScript += "/script>" |
Page.RegisterStartupScript("MSGE", strScript) |
Return dock |
End Function |
I didnt used any updatepanel.
How can i create dock_command without using updatepanel..
thanks
The provided information is insufficient, and we cannot reproduce the problem. Please, send us simple running project, where we can observe this issue. Once we receive it, we will do our best to help you. About "dock_command" creation - do you mean how to add dynamically DockCommand handler?
Sincerely yours,
Petko
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
Hi priya, restutw. I found a simple solution for the problem with the raddock-dissapear after you move to another radzone or whatever place in radlayout.
I only added a variable to the function _addDock and i added the same variable in the function where exists the string _addDock.
Check my code. Its easy. the trick is "function _addDock" + i.ToString()". "i" variable is a unique key for each loop ( the classic for(int i = 0; bla bla bla code)
This problem is generated because when register the script, in the client side script we have two or more functions with the "_AddDock" name and we need to give a unique name fore each RadDock in the loop.
Remember the DockPositionChanged trick for the last raddock in the loop (i put the code from the forums, 10ks) and solve it.
If anybody have a question. Reply. CIAO
// inside in your loop
if
(i == objArreglo.Count)
{
ScriptManager.RegisterStartupScript(
UpdatePanel1,
typeof(RadDock),
"AddDock" + i.ToString(),
string.Format("function _addDock" + i.ToString() + "() {{ Sys.Application.remove_load(_addDock" + i.ToString() + "); $find('{1}').dock($find('{0}')); $find('{0}').doPostBack('DockPositionChanged');}}; Sys.Application.add_load(_addDock" + i.ToString() + ");", dock.ClientID, rdTelCompa1.ClientID), true);
}
else
{
ScriptManager.RegisterStartupScript(
UpdatePanel1,
typeof(RadDock),
"AddDock" + i.ToString(),
string.Format("function _addDock" + i.ToString() + "() {{ Sys.Application.remove_load(_addDock" + i.ToString() + "); $find('{1}').dock($find('{0}')); }}; Sys.Application.add_load(_addDock" + i.ToString() + ");", dock.ClientID, rdTelCompa1.ClientID), true);
}