在vs2005中使用带checkbox的treeview,如何解决选中其中节点,其子节点全部选中,相应父节点也选中,子节点全部取消选中时父节点相应取消选中,也就是最基本的这个应用。
原来在asp.net1.*中treeview有AutoPostBack属性,只要设置其为true,就可以在OnTreeNodeCheckChanged方法中作相应处理来实现。
可是现在asp.net2.0中AutoPostBack属性没有了,也在网上搜了很多的js在客户端来处理选中的,可是都是asp.net1.*中的,我在asp.net2.0中没有调试成功,也可能是我这方面太弱没写好。请完整解决过这个问题的朋友给个解决方法,没用到的就帮者顶吧谢谢各位。分数分配:100分散分,100分给解决问题了的,如果没有解决那200就散了

解决方案 »

  1.   

    搂主够谦虚!如果是在win下面,这个问题应该不存在,要是在web上,没调试过!
      

  2.   

    http://blog.csdn.net/califord/archive/2006/06/04/772505.aspxhttp://blog.csdn.net/califord/archive/2006/02/12/597323.aspx这个你看看
      

  3.   

    asp.net1.*的可以通过vs.net的自动转化向导,转化一下
    应该可以执行,.net2005向下兼容的
      

  4.   

    http://blog.csdn.net/califord/archive/2006/03/02/614001.aspxhttp://blog.csdn.net/califord/archive/2006/03/02/613992.aspx不好意思,刚才看错了,在公司网速慢,也不敢当明正大的看,希望这次不会错了哟
      

  5.   

    asp.net1.*的可以通过vs.net的自动转化向导,转化一下
    应该可以执行,.net2005向下兼容的
    ----------------------------------------------
    现在用的是vs2005自带的treeview,这个要比原来发布的那个改进了不少,所以就是想研究出这个treeview的用法
      

  6.   

    califord(远方) ( ) 我看着第一个回复也是有问题,^_^,都是datagrid的,看看整个2个
      

  7.   

    <%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <body onclick="a()">
      <form runat="server">
        <asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All" ShowLines="True">
          <Nodes>
            <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
            <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
            <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
            <asp:TreeNode Text="新建节点" Value="新建节点">
              <asp:TreeNode Text="新建节点" Value="新建节点">
                <asp:TreeNode Text="新建节点" Value="新建节点">
                  <asp:TreeNode Text="新建节点" Value="新建节点">
                    <asp:TreeNode Text="新建节点" Value="新建节点">
                      <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                    </asp:TreeNode>
                  </asp:TreeNode>
                  <asp:TreeNode Text="新建节点" Value="新建节点">
                    <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                    <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                  </asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNode Text="新建节点" Value="新建节点">
                  <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
                </asp:TreeNode>
                <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
              </asp:TreeNode>
            </asp:TreeNode>
            <asp:TreeNode Text="新建节点" Value="新建节点">
              <asp:TreeNode Text="新建节点" Value="新建节点">
                <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
              </asp:TreeNode>
            </asp:TreeNode>
            <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
            <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
            <asp:TreeNode Text="新建节点" Value="新建节点"></asp:TreeNode>
          </Nodes>
        </asp:TreeView>
      </form>
    </body><script>
    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;
             }
           }
         }     
       }
    }
    }
    </script>