When there is more than one row of RadDocks in a horizontally oriented RadDockZone, it will not be possible to resize them in order to use all the available width of the zone.
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
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 you programmatically load RadDocks in the page view of a RadMultiPage, which is ajaxified via RadAjaxManager or RadAjaxPanel, the docks will be ordered incorrectly after an AJAX request is performed on change of the visible page view.
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.
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>
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 a RadDock control is dragged to the bottom of a page, the page will start scrolling.
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.
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
The RadDock will be moved with the cursor when the scroll wheel is used while dragging the control.
The CSS class "RadDock_Default" will be applied to the placeholder of a RadDock, regardless of the built-in skin that is specified for the control.
It should not be possible to add docks in a RadDockZone, the property AllowedDocks of which does not include the IDs of the included docks.
The RadDock in a vertical RadDockZone is not expanded correctly the first time when it is collapsed by default and its Height is set. If Resizable is set to true, the dock will never expand.
When some content is entered in a RadDock, the project is closed, opened again and new elements are added in the content via the Visual Studio's designer, the elements that are included after the reloading of the project will disappear from the designer, after editing the dock.
When a RadDock without having its height property set is collapsed and then expanded, an explicit height is set to its wrapper as well as to its content wrapper, so that it cannot be resized. The workaround is to remove both heights on DockExpandCollapseCommand: ASPX: <telerik:RadDock runat="server" ID="RadDock1" RenderMode="Classic" Resizable="true"> <ContentTemplate> <asp:Button ID="btn" runat="server" Text="Click me" OnClientClick="toggleVisibility(); return false;" /> <div id="divExpand" style="display: none; height: 400px;"> Expanded </div> </ContentTemplate> <Commands> <telerik:DockExpandCollapseCommand OnClientCommand="DockExpandCollapseCommand" /> </Commands> </telerik:RadDock> JavaScript: <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> function toggleVisibility() { var divExpand = $get('divExpand'); if (divExpand.style.display == 'none') { divExpand.style.display = 'block'; } else { divExpand.style.display = 'none'; } } function DockExpandCollapseCommand(sender, args) { if (!sender.get_collapsed()) { sender.get_contentContainer().style.height = ""; sender.get_element().style.height = ""; } } </script> </telerik:RadCodeBlock>
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; }
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>
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>