我列出了ASP.net控件TreeView的数据。我想禁用列出的TreeView中的特定节点/父节点。我想用jQuery做到这一点。
答案 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&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();