【问题标题】:disable a treeview node禁用树视图节点
【发布时间】:2010-07-06 12:19:13
【问题描述】:

我列出了 ASP.net 控件 TreeView 的数据。我想禁用列出的 TreeView 中的特定节点/父节点。我想用 jQuery 来做这个。

【问题讨论】:

    标签: c# jquery asp.net jquery-ui treeview


    【解决方案1】:

    如果你采用简单的树节点标记:

    <asp:TreeView runat="server" ID="myTreeView">
            <Nodes>
                <asp:TreeNode Text="Node 1 "/>                          
                <asp:TreeNode Text="Node 2"/>                           
                <asp:TreeNode Text="Node 3"/>                           
            </Nodes>
            <NodeStyle CssClass="treeNode" />
        </asp:TreeView>
    

    那么单个节点的默认输出为:

    <table cellspacing="0" cellpadding="0" style="border-width: 0pt;">
        <tbody><tr>
            <td><img alt="" src="/WebResource.axd?d=g57q362hyd_ZDMok5KQd0PqwW46aD7OdNOJZcZxqq5Q1&amp;t=634092817937234954"></td><td style="white-space: nowrap;" class="treeNode myTreeView_2"><a style="border-style: none; font-size: 1em;" id="myTreeViewt0" onclick="TreeView_SelectNode(myTreeView_Data, this,'myTreeViewt0');" href="javascript:__doPostBack('myTreeView','sNode 1 ')" class="myTreeView_0 treeNode myTreeView_1">Node 1 </a></td>
        </tr>
    </tbody></table>
    

    此时,您可以看到生成的 a 标签周围接收到 css 类“treeNode”,因此要选择特定节点,您可以使用以下选择器:

    $('.treeNode:eq(0)') 获取树中的第一个节点。您可能更喜欢使用其他选择器,请参阅jQuery docs 上的选择器页面。

    然后你可以做不同的事情。

    • 你可以隐藏节点:

        $('.treeNode:eq(0)').hide();
      

    您可以将 a 标签替换为文本:

          var node = $('.treeNode:eq(0)'); //get the node element
          var nodeLink = $('a', node).hide() //get the link and hide it;
          node.append(nodeLink.text()); //get the text from the link and add it to the node
    

    或者您可以使用 3rd 方 jquery 插件来阻止元素(通常在执行 ajax 操作时很好):

          - download the [blockui][2] plugin
          - reference the javascript file from your page (or masterpage)
          - then use this javascript call:
                to block:
                            $('.treeNode:eq(0)').block();
                unblock:
                             $('.treeNode:eq(0)').unblock(); 
    

    【讨论】:

    • 好的.....知道如何将特定子节点从 TreeView 拖放到任何 DIV 或任何地方?
    • 那完全是另一个话题...有很多选项(jqueryui.com/demos/draggableplugins.jquery.com/project/Plugins/category/45)你会找到足够的例子来说明如何使用 jQuery。然而,在我看来,拖放不仅仅是一个技术问题,也是一个设计问题。我建议不要只使用 d&d,因为它看起来很酷,你必须正确地使用它并且在有意义的地方使用它。有时添加一个按钮会让你的用户的生活比拥有拖放功能更容易...... :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多