2010-07-06 114 views
0

我已經列出了ASP.net控件TreeView的數據。我想要禁用列出的TreeView中的特定節點/父節點。我想用jQuery來做到這一點。禁用樹視圖節點

回答

2

,如果你把一個簡單的樹節點標記:

<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(); 
    

你可以替換文本標籤:

 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(); 
+0

確定.....任何想法如何從TreeView中拖動特定的子節點並將其放到任何DIV或任何位置? – 2010-07-07 08:50:45

+0

這就是整個其他話題... 有很多選項(http://jqueryui.com/demos/draggable/,http://plugins.jquery.com/project/Plugins/category/45)你會發現如何用jQuery做足夠的例子。 但是,就我所見,拖放不僅僅是一個技術問題,而且也是一個設計問題。我建議不要僅僅使用d&d,因爲它看起來很酷,你必須正確地做它,並且它是有道理的。有時添加一個按鈕會讓你的用戶的生活變得更加容易,如果他們有拖放功能...... :) – poeticGeek 2010-07-07 13:37:39