禁用树视图节点

时间:2010-07-06 12:19:14

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

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

1 个答案:

答案 0 :(得分:2)

如果您采用简单的treenode标记:

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

此时您可以看到生成的标记周围接收到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

或者你可以使用第三方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();