2

我正在尝试构建一个简单的程序,允许我使用 Telerik 的RadDock库将面板移动到屏幕上的不同区域。

我试图尽可能地遵循这个在线示例,但由于某种原因,能够抓取和拖动面板的过程在我的程序中根本没有生效,尽管几乎完全复制了属性列表。

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应该可以拖动的两个 s 根本无法移动,尽管DockHandle在 HTML 中明确设置。

有谁知道为什么会这样?

更新

我添加了第 4 个RadDockZoneRadDock其中包含一个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>

这让我认为有一些更根本的原因导致RadDocks 不交互,因为从 s 中进行选择RadioButtonList是可能的,但不会触发事件。在这一点上,实际呈现的网页上似乎没有任何响应。

谢谢,马克

4

1 回答 1

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 控件可拖动。那么你所说的“不工作”到底是什么意思?是否有任何可能导致控件无法正常运行的客户端错误。

RadDock 码头手柄演示: http ://demos.telerik.com/aspnet-ajax/dock/examples/dockhandle/defaultcs.aspx

于 2016-06-27T06:57:23.747 回答