VB.Net - RadDock DockHandle属性未生效(Telerik)

时间:2016-06-23 07:04:02

标签: vb.net telerik raddocking

我正在尝试构建一个简单的程序,允许我使用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个RadDockRadioButtonList。我为此列表编写了一个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的选择是可能的,但不会触发事件。在这一点上,实际呈现的网页上没有任何内容正在响应。

谢谢, 标记

1 个答案:

答案 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