When you have a RadDockZone in a container with overflow, the RadDockZone contains resizable RadDocks (Resizable="true") and you start resizing one of the docks by clicking its bottom edge and dragging outside the border of the container with overflow, the resized dock will be positioned absolutely in the dock zone.
When you place input HTML elements in the content of a RadDock and open the the page with mobile Chrome for Android, you will not be able to use the input elements.
If a page scrolling is started by touching the content of a RadDock and dragging under IE 10 in a mobile device, the page will not be scrolled.
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.
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.
The RadDock is not transparent whlie being dragged.
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.
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>
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 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.
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>
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>
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.
The appearance of the RadDock's title bar is broken when the control is configured with any of the following built-in skins in a RTL layout.
I have a RadDockLayout and RadDockZone in the markup and I'm dynamically add RadDock controls from code behind to RadDockZone. And the intended drag and drop behavior of Dock items within the Zone is working fine in IE and Chrome, but not in Firefox. In Firefox when I click on the Title area of the RadDock item (which is the drag handler) the Dock item detached from the list and from the Zone and goes far top of the page from the cursor or just disappear. So far what I have found is this; The RadDockZone is placed in bottom of the long page (with browser scrolled to bottom). The RadDock item does not take the scroll height into account when it's position is calculated. I'm using latest version of Firefox (v17) and other browsers (IE v9, Chome v23) Is there a fix for this ?
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
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.