c# - 拖放子节点

标签 c# asp.net jquery jquery-ui jquery-selectors

我已在 TreeView 控件中填充了数据。如何使用 JQUERY 从父节点拖动特定子节点并将拖动的子节点拖放到 DIV 或任何部分?我知道在 jquery 中,有“draggable”和“droppable”方法可以实现这一点。但我想拖动一个特定的子节点并将其放下。

或者至少如何使用 jquery 获取特定子节点的文本/id?我希望我可以拖动,如果我可以获取子节点

最佳答案

如果你有以下aspx

<asp:TreeView ID="TreeView1" runat="server">
    <Nodes>
        <asp:TreeNode Text="Employees">
            <asp:TreeNode Text="HR" Value="SubClass1">
                <asp:TreeNode Text="Bradley" Value="ID-1234" />
                <asp:TreeNode Text="Whitney" Value="ID-5678" />
                <asp:TreeNode Text="Barbara" Value="ID-9101" />
            </asp:TreeNode>
            <asp:TreeNode Text="IT" Value="SubClass2">
                <asp:TreeNode Text="Jimmy" Value="ID-5587" />
                <asp:TreeNode Text="Samantha" Value="ID-5474" />
                <asp:TreeNode Text="Freddy" Value="ID-2001" />
            </asp:TreeNode>
        </asp:TreeNode>
    </Nodes>
    <NodeStyle CssClass="treeNode" />
</asp:TreeView>

添加

<script type="text/javascript">
    $(function () {
        $(".treeNode").draggable();
        $("#<%= TreeView1.ClientID%>").droppable({
            drop: function (event, ui) {
                alert(event.originalTarget.text);
            }
        });
    });
</script>

显示删除节点的文本。

不过,您将需要 jquery.ui 库。

如果您打算拖放一个树节点及其子节点,您可能会从中获得一些乐趣,因为显然树节点被渲染为一个表(对于父节点)和一个包含子节点的 div。没有 div 包装两个都。

也许您可以重写 TreeView 派生类中的 RenderContents 并自己递归地处理树节点的渲染,但这听起来只是包装两个元素需要大量工作。

也许更好的选择是使用 JQuery 插件来呈现树列表。

关于c# - 拖放子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3192608/

相关文章:

c# - 如何在 LinkBut​​ton 单击事件上启动电子邮件客户端?

c# - 将报告从报告查看器导出到内存流,然后通过电子邮件发送报告

c# - 如何在无序列表中添加项目?

javascript - 在运行时调用自定义方法进行表单验证

jquery - Bootstrap Modal 关闭然后打开后不滚动

javascript - 降级和升级 IE

c# - HttpListener 调用了两次

c# - 为 3 种不同的环境转换 app.config

c# - 将反序列化的动态 Json 转换为强类型类

c# - 如何添加对 System.Numerics.dll 的引用