如何给TreeView控件的节点添加客户端事件onclick,我想实现选择一个节点后,让其父节点也跟着选中,而不提交到服务器端实现。。谢谢!
TreeNode对象没有attrubute 属性,所以我无法通过 TreeNode1.Atrrubute.Add("onlick","js");  有更好的方法给动态生成的TreeNode添加onclick 么~

解决方案 »

  1.   

    这些节点前面都有CheckBox,选中checkbox ,使其所有父节点都选中 用js实现谢谢。。
      

  2.   

    http://community.csdn.net/Expert/topic/5091/5091357.xml?temp=.2420923引用 :
    Page_Load中
    tv.Attributes.Add("onClick","CheckNode();");
    前台javascript中:
    function CheckNode()

    indexid=tv.clickedNodeIndex;
    var data = tv.getTreeNode(indexid).getAttribute("NodeData");
    }
      

  3.   

    的确这个方法很好!! 节点相应了单击。。
    可是节点前的CheckBox还是没有相应 ,有没有办法让节点前的CheckBox也这样相应呢!!!
    谢谢了
      

  4.   

    如何响应TreeNode前复选框的单击,客户端实现。。
      

  5.   

    是TREEVIEW 自带的checkbox啊,不是单独的web控件checkbox ...如果激发事件..
      

  6.   

    function a()
            {
              if(event.srcElement.tagName=="INPUT")
              {
               obj = event.srcElement
               var hasTreeNode = false
               if (obj.tagName == "INPUT" && obj.type == "checkbox") {
                 var treeNode = obj             while (obj.tagName != "TABLE")
                 {
                   obj = obj.parentNode
                 }
                 var pt = obj.rows[0].cells.length
                 var parentTreeNode = obj.rows[0].cells[0]
                 var containerDiv = obj.parentNode
                 if(containerDiv == null)
                 {
                   return
                 }     
                 var tables = containerDiv.getElementsByTagName("TABLE")
                 var tableCount = tables.length
                 if(tableCount < 1)
                 {
                   return
                 }   
                 for (i = 0; i < tableCount; i++)
                 {
                   if (tables[i] == obj)
                   {
                     hasTreeNode = true;
                     i++;
                     if (i == tableCount)
                     {
                       return;
                     }
                   }
                   if (hasTreeNode)
                   {
                     var ct = tables[i].rows[0].cells.length;
                     if (ct > pt)
                     {
                       var cell = tables[i].rows[0].cells[ct - 1];
                       var inputs = cell.getElementsByTagName("INPUT");
                       inputs[0].checked = event.srcElement.checked;
                     }
                     else
                     {
                       return;
                     }
                   }
                 }     
               }
            }
            }
      

  7.   

    在body的onload事件中加上a(),这段代码是实现选中所有子节点的,而不是你要的父节点,但可以给你参考一下,原理都是类似的
      

  8.   

    编译后,查看html 源文件,treeview节点都变成了 
    <tvns:treenode Expanded="True" CheckBox="True" ID="00010005">
    人力资源部
    </tvns:treenode>
    <tvns:treenode Expanded="True" CheckBox="True" ID="00010007">
    计财部
    </tvns:treenode>
    等等.....
    其自带的checkbox并没有生成<input type=checkbox>的html标签
    那是不是就不能用javascript找到其自带的checkbox元素呢? 
    比方说我想用让所有checkbox 不能编辑只能显示,即enable掉,如何实现呢
    最后的问题,回答了就给分。thanks
      

  9.   

    TreeView1.Atrrubute.Add("onlick","js");