Asp.net_控件TreeView的使用

来源:互联网 发布:海南省三防办 大数据 编辑:程序博客网 时间:2024/05/22 00:12
[javascript] view plaincopyprint?
  1. <script language="javascript" type="text/javascript"
  2.  
  3.         function postBackObject() 
  4.         {    
  5.             var o = window.event.srcElement; 
  6.             if (o.tagName == "INPUT" && o.type == "checkbox")//点击treeview的checkbox是触发 
  7.             { 
  8.                var d=o.id;//获得当前checkbox的id; 
  9.                var e= d.replace("CheckBox","Nodes");//通过查看脚本信息,获得包含所有子节点div的id 
  10.                var div= window.document.getElementById(e);//获得div对象 
  11.               if(div!=null//如果不为空则表示,存在自节点 
  12.               { 
  13.                    var check=div.getElementsByTagName("INPUT");//获得div中所有的已input开始的标记 
  14.                    for(i=0;i<check.length;i++)     
  15.                    { 
  16.                         if(check[i].type=="checkbox")//如果是checkbox 
  17.                         { 
  18.                           check[i].checked=o.checked;//字节点的状态和父节点的状态相同,即达到全选 
  19.                         } 
  20.                    } 
  21.               } 
  22.               else  //点子节点的时候,使父节点的状态改变,即不为全选 
  23.               { 
  24.                   var divid=o.parentElement.parentElement.parentElement.parentElement.parentElement;//子节点所在的div 
  25.                   var id= divid.id.replace("Nodes","CheckBox");//获得根节点的id 
  26.                   var checkbox=divid.getElementsByTagName("INPUT");//获取所有子节点数 
  27.                   var s=0; 
  28.                   for(i=0;i<checkbox.length;i++)     
  29.                    { 
  30.                       if(checkbox[i].checked) //判断有多少子节点被选中 
  31.                       { 
  32.                          s++;    
  33.                       } 
  34.                    } 
  35.            
  36.                 if(s==checkbox.length) //如果全部选中 或者 选择的是另外一个根节点的子节点 , 
  37.                 {                               //    则开始的根节点的状态仍然为选中状态 
  38.                  window.document.getElementById(id).checked=true
  39.                 } 
  40.                 else 
  41.                 {                               //否则为没选中状态 
  42.                  window.document.getElementById(id).checked=false
  43.                 } 
  44.               }    
  45.             } 
  46.         } 
  47. </script> 
[csharp] view plaincopyprint?
  1. <asp:TreeView ID="tvData" runat="server" ShowCheckBoxes="All" ExpandDepth="0" ShowLines="True" 
  2.                         onclick="postBackObject()" OnSelectedNodeChanged="tvData_SelectedNodeChanged"
  3.                     </asp:TreeView> 
[csharp] view plaincopyprint?
  1. <pre class="csharp" name="code"><span style="white-space: pre;">    </span>//页面初始化</pre><pre class="csharp" name="code"><span style="white-space: pre;">    </span>tvData.Nodes.Clear();</pre><pre class="csharp" name="code"><span style="white-space: pre;">  </span>TreeNode tn1 = new TreeNode("1级", "1级"); 
  2.         TreeNode tn2 = new TreeNode("1级","1级"); 
  3.         tvData.Nodes.Add(tn1); 
  4.         tvData.Nodes.Add(tn2);</pre><pre class="csharp" name="code"><span style="white-space: pre;">    </span>TreeNode tn21 = new TreeNode("2级","2级"); 
  5.         TreeNode tn22 = new TreeNode("2级","2级");</pre><span style="white-space: pre;"> tvData.Nodes[0].ChildNodes.Add(tn</span>21<span style="white-space: pre;">);</span><br> 
  6. <span style="white-space: pre;">tvData.Nodes[</span>1<span style="white-space: pre;">].ChildNodes.Add(tn</span>22<span style="white-space: pre;">);</span><br> 
  7. <span style="white-space: pre;">tn</span>1<span style="white-space: pre;">.Expanded =true;</span>//展开 
  8. <pre></pre> 
  9. <pre class="csharp" name="code"><preclass="html" name="code">//动态加载</pre> protected void tvData_SelectedNodeChanged(object sender, EventArgs e) { if (tvData.SelectedNode.ChildNodes.Count == 0) { //填充 if (tvData.SelectedNode.Depth == 1) { if (tvData.SelectedNode.Parent == tvData.Nodes[0]) { <pre class="csharp" name="code"> <span style="white-space: pre;">           </span>TreeNode tn1=new TreeNode("3级","3级"); 
  10.                         tvData.SelectedNode.ChildNodes.Add(tn1); 
  11.                         if (tvData.SelectedNode.Checked ==true
  12.                         { 
  13.                             tn1.Checked = true
  14.                         }</pre> } if (tvData.SelectedNode.Parent 
  15. == tvData.Nodes[1]) { TreeNode tn1=new TreeNode("3级","3级"); tvData.SelectedNode.ChildNodes.Add(tn1);if (tvData.SelectedNode.Checked == true) { tn1.Checked = true; } } } } } 
  16. <pre></pre> 
  17. <br> 
  18. <br> 
  19. <br> 
  20.  
  21. </pre>