RadDockLayout cannot persists its state if contains more than 9 docks.
Code to reproduce (if one of RadDocks is removed the state will be persisted properly):
<telerik:RadDockLayout runat="server" ID="RadDockLayout1" EnableLayoutPersistence="true" RenderingMode="Lightweight"
LayoutPersistenceRepositoryType="Cookies" LayoutRepositoryID="repID20210406_1">
<telerik:RadDock RenderMode="Lightweight" ID="RadDock1" runat="server"
UniqueName="RadDock1" AutoPostBack="true">
<ContentTemplate>
dock 1
</ContentTemplate>
</telerik:RadDock>
<telerik:RadDock RenderMode="Lightweight" ID="RadDock2" runat="server"
UniqueName="RadDock2" AutoPostBack="true">
<ContentTemplate>
dock 2
</ContentTemplate>
</telerik:RadDock>
<telerik:RadDock RenderMode="Lightweight" ID="RadDock3" runat="server"
UniqueName="RadDock3" AutoPostBack="true">
<ContentTemplate>
dock 3
</ContentTemplate>
</telerik:RadDock>
<telerik:RadDock RenderMode="Lightweight" ID="RadDock4" runat="server"
UniqueName="RadDock4" AutoPostBack="true">
<ContentTemplate>
dock 4
</ContentTemplate>
</telerik:RadDock>
<telerik:RadDock RenderMode="Lightweight" ID="RadDock5" runat="server"
UniqueName="RadDock5" AutoPostBack="true">
<ContentTemplate>
dock 5
</ContentTemplate>
</telerik:RadDock>
<telerik:RadDock RenderMode="Lightweight" ID="RadDock6" runat="server"
UniqueName="RadDock6" AutoPostBack="true">
<ContentTemplate>
dock 6
</ContentTemplate>
</telerik:RadDock>
<telerik:RadDock RenderMode="Lightweight" ID="RadDock7" runat="server"
UniqueName="RadDock7" AutoPostBack="true">
<ContentTemplate>
dock 7
</ContentTemplate>
</telerik:RadDock>
<telerik:RadDock RenderMode="Lightweight" ID="RadDock8" runat="server"
UniqueName="RadDock8" AutoPostBack="true">
<ContentTemplate>
dock 8
</ContentTemplate>
</telerik:RadDock>
<telerik:RadDock RenderMode="Lightweight" ID="RadDock9" runat="server"
UniqueName="RadDock9" AutoPostBack="true">
<ContentTemplate>
dock 9
</ContentTemplate>
</telerik:RadDock>
<%--The state will be persisted of you comment the dock below--%>
<telerik:RadDock RenderMode="Lightweight" ID="RadDock10" runat="server"
UniqueName="RadDock10" AutoPostBack="true">
<ContentTemplate>
dock 10
</ContentTemplate>
</telerik:RadDock>
</telerik:RadDockLayout>
The size of a dock is increased a bit each time it is dropped and the EnableAnimation="True". Video: https://www.screencast.com/t/LoUJbAb8c Workaround: Set EnableAnimation="False" Steps to reproduce: 1. Run the following code. 2. Swipe the first and second dock several times (Test 1 and Test 2) <telerik:RadDockZone ID="Zone1" runat="server" Height="500px" Orientation="Horizontal" Width="400px"> <telerik:RadDock RenderMode="Lightweight" runat="server" Height="110px" Width="140px" ID="RadDock1" Title="RadDock A" DefaultCommands="None" DockMode="Docked" EnableAnimation="True" EnableRoundedCorners="True" Skin="Silk"> <ContentTemplate> <div style="background-color: blue; width: 110px; color: white"> Test 1 </div> </ContentTemplate> </telerik:RadDock> <telerik:RadDock RenderMode="Lightweight" runat="server" Height="110px" Width="140px" ID="RadDock2" Title="RadDock B" DefaultCommands="None" DockMode="Docked" EnableAnimation="True" EnableRoundedCorners="True" Skin="Web20"> <ContentTemplate> <div style="background-color: red; width: 110px; color: white"> Test 2 </div> </ContentTemplate> </telerik:RadDock> <telerik:RadDock RenderMode="Lightweight" runat="server" Height="110px" Width="140px" ID="RadDock3" Title="RadDock C" DefaultCommands="None" DockMode="Docked" EnableAnimation="True" EnableRoundedCorners="True" Skin="Web20"> <ContentTemplate> <div style="background-color: green; width: 110px; color: white"> Original </div> </ContentTemplate> </telerik:RadDock> </telerik:RadDockZone> Result: The width of the first two docks is different than the one which has not been dragged (Original) Expected: The width of all docks remains the same.
For the time being you can use the following workaround: ASPX: <div style="border: 1px solid red; height: 300px; width: 400px; overflow: scroll;"> <div style="border: 1px solid green; height: 500px; width: 200px;"> <telerik:RadDockZone ID="RadDockZone1" runat="server" RenderMode="Lightweight"> <telerik:RadDock ID="RadDock1" runat="server" Resizable="true" RenderMode="Lightweight"> <ContentTemplate> <div style="border: 1px solid blue; height: 100px;"></div> </ContentTemplate> </telerik:RadDock> </telerik:RadDockZone> </div> </div> <script> var Browser = Telerik.Web.Browser; $ = $telerik.$; Telerik.Web.UI.RadDock.prototype._initResizableWidget = function() { if(this._resizableWidget && this._resizableWidget.dispose) this._resizableWidget.dispose(); if(!this._resizable) return; if(Browser.webkit) { //need to kickstart the css transform, because of a quirk in the layout engine of webkit/blink when it comes to position:static inside position:relative this._kickStartCssTransform(); } this._resizableWidget = new Telerik.Web.UI.Widgets.Resizable(this._element, { handles: this._getAvailableHandles(), appendHandleToElement: true }); if(this._renderingView) this._setResizeLimit(); if(this._collapsed) this._resizableWidget.hideHandles(); this._resizableWidget.add_resizeStart($.proxy(this._resizeStartHandler,this)); this._resizableWidget.add_resizing($.proxy(this._resizingHandler, this)); this._resizableWidget.add_resizeEnd($.proxy(this._resizeEndHandler, this)); } </script>
As of Q1 2016 the elasticity of RadDock is not behaving properly due to some fixed font styles like: .RadDock .rdCommandButton { font-size: 16px; } Possible workaround: div.RadDock .rdCommandButton { font-size: 1.2em; }
The client state of the dock changes, e.g, 80% to 80px. The pixel value affects the dock after a post back. Possible workaround: <telerik:RadDock runat="server" ID="dock2" Width="80%"> <ContentTemplate> <telerik:RadButton runat="server"></telerik:RadButton> </ContentTemplate> </telerik:RadDock> <script> Telerik.Web.UI.RadDock.prototype.saveClientState = function () { var DECIMAL_RADIX = 10; var dock = this; var width = dock.get_width(); var height = dock.get_height(); var top = dock.get_top() ? parseInt(dock.get_top(), DECIMAL_RADIX) : null; var left = dock.get_left() ? parseInt(dock.get_left(), DECIMAL_RADIX) : null; var expandedHeight = parseInt(dock._expandedHeight, DECIMAL_RADIX); var state = { Top: top, Left: left, DockZoneID: this.get_dockZoneID(), Collapsed: this.get_collapsed(), Pinned: this.get_pinned(), Resizable: this.get_resizable(), Closed: this.get_closed(), Width: width, Height: height, ExpandedHeight: expandedHeight, Index: this.get_index(), IsDragged: this.get_isDragged() }; return Sys.Serialization.JavaScriptSerializer.serialize(state); }; </script>
When there is a RadDock with one or more disabled commands, you focus the dock and you use one of the default keyboard shortcuts for the disabled command(s), the keydown browser event will be disabled. The default shortcuts are: ESC - Close command Ctrl + F11 - Toggle Expand / Collapse command Crtr + F12- Toggle Pin / UnPin command
It will possible to manually invoke the saving and loading of the dock state when the built-in dock state persistence is used in order to avoid the automatic saving and loading of the state on each postback.
Request new properties for the RadDockZone to allow the display of a message, image, or style when no docks are present in the zone along the lines of the EmptyMessage property of the RadInput control. The properties could be: "EmptyZoneMessage", "EmptyZoneImage" and "EmptyZoneCssClass". See the following thread from 2010 where a solution to this was discussed: http://www.telerik.com/forums/empty-raddockzone-message
When you dock a resizable RadDock (Resizable="true") in a RadDockZone, its drag handle is displaced in Chrome, which prevents you from resizing it when there are multiple docked docks.
When you place a resizable RadDock control (Resizable="true") in a RadDockZone without specified size and you close the dock, a JavaScript error is thrown.
The rounded corners of RadDock controls that are using the Silk or Glow skin cannot be disabled.
For the time being you can either declare some command or place the following JavaScript workaround below the RadDock's declaration: <telerik:RadDockZone ID="RadDockZone1" runat="server" Height="100%" MinWidth="50"> <telerik:RadDock ID="RadDock1" runat="server" RenderMode="Lightweight" Title="title" DefaultCommands="None" DockHandle="TitleBar" DockMode="Docked"> <ContentTemplate> <div> Content... </div> </ContentTemplate> </telerik:RadDock> </telerik:RadDockZone> <script> Telerik.Web.UI.Dock.LightweightView.prototype._sizeTitleElement = function () { var titleElem = this.get_titleElement(), titleBarElem = this.get_titleBar(), commandsElem = this.get_commandsContainer(); if (commandsElem == undefined) { titleElem.style.width = Math.max(0, parseInt(titleBarElem.clientWidth)) + "px"; } else { titleElem.style.width = Math.max(0, parseInt(titleBarElem.clientWidth) - parseInt(commandsElem.clientWidth)) + "px"; } } </script>
When the browser or the page, on which a RadDock is placed, is configured with a culture that uses comma-separated values and you set the Width, Height, Top, Left properties with such a value, an exception will be thrown.
When the content container of RadDock is configured to be a drag handle via the following code dock.set_handle(dock.get_contentContainer()); a JavaScript error will be thrown if you call the 'clone' client-side function of the control dock.clone()
Setting the RenderMode=Auto to a Dock control results in a JS error on the client. Expected is to choose the most appropriate render mode among the existing such.
We have this client reporting to me that RadDock control is not working on Windows 8 using Google Chrome most updated version. I have double check on this but it is working on my end using Windows 7 Google Chrome most updated version too. She is saying that on Windows 8 Google Chrome, she would not able to drag the RadDock control from RadDockZone1 to RadDockZone2. Let me know if this something that is a bug on your end? Thanks,
When a RadDock control is dragged to the bottom of a page, the page will start scrolling.
The animation of the RadDock control is causes performance issues under IE8 and due to that the expanding/collapsing and the docking/undocking functionalities are not working as expected. Disabling the animation resolves the issue: EnableAnimation="false"
The RadDock control cannot be expanded when it is set in lightweight render mode and its property Collapsed is set to true. You can avoid this issue by setting the dock in collapsed state via its client-side API: <script type="text/javascript"> function OnClientInitialize(sender, args) { sender.set_collapsed(true); } </script> <telerik:RadDock runat="server" ID="RadDock1" OnClientInitialize="OnClientInitialize"> </telerik:RadDock>