- 3 minutes to read
The dock panel is a content placeholder, which can be moved by end-users between particular dock zones within a web page.
To specify which part of a panel can be dragged to move a panel, use the ASPxPopupControlBase.DragElement property. You can prohibit end-users from dragging a panel by setting the ASPxDockPanel.AllowDragging property to false.
ASPxDockPanel allows end-users to resize a panel if the ASPxPopupControlBase.AllowResize property is set to true. You can specify the size constraints for a panel using the ASPxPopupControlBase.MinHeight, ASPxPopupControlBase.MaxHeight, ASPxPopupControlBase.MinWidth, and ASPxPopupControlBase.MaxWidth properties. If the panel content does not fit the panel size, you can enable scroll bars via the ASPxPopupControlBase.ScrollBars property.
var zone = pnl1.GetOwnerZone(); pnl1.MakeFloat(); pnl1.Dock(zone);
To recognize panels, the ASPxDockPanel.PanelUID property can be used. You can obtain a panel on the server (ASPxDockManager.FindPanelByUID) or client (ASPxClientDockManager.GetPanelByUID and ASPxClientDockZone.GetPanelByUID) side using the panel unique identifier.
ASPxDockPanel has the capability to load panel content on demand via callbacks. Several content loading modes are available via the ASPxDockPanel.LoadContentViaCallback property.
A dock panel can either be docked to a dock zone or made to float. End-users can dock/undock panels by dragging them. To change the panel dock state programmatically use the ASPxDockPanel.OwnerZone or ASPxDockPanel.OwnerZoneUID property on the server side, or the ASPxClientDockPanel.Dock and ASPxClientDockPanel.MakeFloat methods on the client side. To get the panel dock state on the client side use the ASPxClientDockPanel.IsDocked method. You can specify dock states allowed for a panel (dock only, float only or both) via the ASPxDockPanel.AllowedDockState property.
You can obtain a zone that owns the panel via the ASPxDockPanel.OwnerZone property. The panel owner can be accessed by its unique identifier (UID) using the ASPxDockPanel.OwnerZoneUID property as well. To get the owner zone on the client side, use the ASPxClientDockPanel.GetOwnerZone method. To control where the panel is displayed amongst other panels within the zone, use the ASPxDockPanel.VisibleIndex property. To manage a panel's visible index on the client side, use the ASPxClientDockPanel.GetVisibleIndex and ASPxClientDockPanel.SetVisibleIndex methods.
Using a dock panel's ASPxDockPanel.ForbiddenZones property, you can specify disallowed zones for the panel - the zones to which the panel cannot be docked. To learn more about forbidden zones, follow the Forbidden Zones topic.
You can respond to panel dragging and docking using the corresponding panel events. Additionally you can respond to closing, showing and resizing of a panel using dock manager events. To learn more, see the Common Docking Events topic.
Reasons for a panel not docking
In the following cases, a panel does not dock to a zone. You can set the panel's owner zone programmatically, but it actually stays in a floating state:
- the ASPxDockManager.FreezeLayout property is set to true;
- the zone is contained within the panel's ASPxDockPanel.ForbiddenZones collection;
- the ASPxDockPanel.AllowedDockState property is set to FloatOnly;
- the ASPxDockZone.AllowGrowing property is set to false and a free space within the zone is less than a dock panel size.