我正在尝试构建一个简单的程序,允许我使用Telerik的RadDock
库将面板移动到屏幕上的不同区域。
我尽可能地尝试关注this在线示例,但出于某种原因,能够抓取并拖动面板的过程在我的程序中根本没有生效,尽管属性列表几乎完全被复制。
我为每个DockHandle
元素设置RadDock
属性的方式不同,但这些属性都不起作用。
代码如下所示:
<telerik:RadDockLayout runat="server" ID="RadDockLayout1">
<table>
<tr>
<td>
<telerik:RadDockZone runat="server" ID="RadDockZone1" MinHeight="200px" Width="200px">
<telerik:RadDock runat="server" ID="Dock1" Title="RadDock1" DockHandle="None"
Text="No DockHandle. Cannot be dragged." Width="200px"
EnableEmbeddedSkins="False" Skin="Blue">
<ContentTemplate>
<asp:PlaceHolder ID="ph1" runat="server"></asp:PlaceHolder>
</ContentTemplate></telerik:RadDock>
</telerik:RadDockZone>
</td>
<td>
<telerik:RadDockZone runat="server" ID="RadDockZone2" MinHeight="200px" Width="200px">
<telerik:RadDock runat="server" ID="Dock2" Title="RadDock2" DockHandle="Grip"
Text="Grip DockHandle. Drag by Top." Width="200px"
EnableEmbeddedSkins="False" Skin="Blue">
<ContentTemplate>
<asp:PlaceHolder ID="ph2" runat="server"></asp:PlaceHolder>
</ContentTemplate>
</telerik:RadDock>
</telerik:RadDockZone>
</td>
<td>
<telerik:RadDockZone runat="server" ID="RadDockZone3" MinHeight="200px" Width="200px">
<telerik:RadDock runat="server" ID="Dock3" Title="RadDock3" DockHandle="TitleBar"
Text="TitleBar DockHandle. Drag by TitleBar." Width="200px"
EnableEmbeddedSkins="False" Skin="Blue">
<ContentTemplate>
<asp:PlaceHolder ID="ph4" runat="server"></asp:PlaceHolder>
</ContentTemplate>
</telerik:RadDock>
</telerik:RadDockZone>
</td>
</tr>
</table>
</telerik:RadDockLayout>
页面加载,但是应该可拖动的两个RadDock
根本无法移动,尽管在HTML中显式设置了DockHandle
。
有谁知道为什么会这样?
更新
我添加了包含RadDockZone
的第4个RadDock
和RadioButtonList
。我为此列表编写了一个SelectedIndexChanged事件,并将其链接到HTML中,但事件永远不会触发。
<td>
<telerik:RadDockZone runat="server" ID="RadDockZone4" MinHeight="200px" Width="200px">
<telerik:RadDock runat="server" ID="Dock4" Title="RadDock4" DockHandle="None" Width="200px"
EnableEmbeddedSkins="False" Skin="Blue">
<ContentTemplate>
<div>
Pick a skin for the RadDocks...
<br />
<asp:RadioButtonList runat="server" ID="radSkins" OnSelectedIndexChanged="skin_Selected">
<asp:ListItem Text="Black Skin" Value="Black" Selected="True"></asp:ListItem>
<asp:ListItem Text="Blue Skin" Value="Blue"></asp:ListItem>
<asp:ListItem Text="White Skin" Value="White"></asp:ListItem>
</asp:RadioButtonList>
</div>
</ContentTemplate>
</telerik:RadDock>
</telerik:RadDockZone>
</td>
这让我觉得有一些更基本的因素导致RadDock
不能互动,因为RadioButtonList
的选择是可能的,但不会触发事件。在这一点上,实际呈现的网页上没有任何内容正在响应。
谢谢, 标记
答案 0 :(得分:0)
<telerik:RadDockZone runat="server" ID="RadDockZone7" MinHeight="200px" Width="200px">
<telerik:RadDock runat="server" ID="Dock4" Title="RadDock4" DockHandle="None" Width="200px"
EnableEmbeddedSkins="False" Skin="Blue">
<ContentTemplate>
<div>
Pick a skin for the RadDocks...<br />
<asp:RadioButtonList runat="server" ID="RadioButtonList1" OnSelectedIndexChanged="skin_Selected" AutoPostBack="True">
<asp:ListItem Text="Black Skin" Value="Black" Selected="True"></asp:ListItem>
<asp:ListItem Text="Blue Skin" Value="Blue"></asp:ListItem>
<asp:ListItem Text="White Skin" Value="White"></asp:ListItem>
</asp:RadioButtonList>
</div>
</ContentTemplate>
</telerik:RadDock>
</telerik:RadDockZone>
SelectedIndexChanged
没有被触发是因为您忘了设置AutoPostBack = "true"
。设置完成后,您应该能够执行SelectedIndexChanged
事件中的代码。
关于码头处理的问题,我不认为我的尝试中存在任何问题。我能够将三种类型应用于 RadDock 控件,并按预期方式工作。 Grip / TitleBar确实允许RadDock控件可拖动。那你究竟是什么意思&#34;没有工作&#34;?是否有任何客户端错误可能导致控件无法正常运行。
RadDock Dock Handle Demo: http://demos.telerik.com/aspnet-ajax/dock/examples/dockhandle/defaultcs.aspx