如题!!急

解决方案 »

  1.   

    ASPX文件:
    <%@ Page language="c#" Codebehind="treecheckbox.aspx.cs" AutoEventWireup="false" Inherits="WebTest.treecheckbox" %>
    <%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>tree</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="C#" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    <script language="javascript">
    <!--
    //初始化选中节点
    function initchecknode()
    {
     var node=TreeView1.getTreeNode("1");
     node.setAttribute("Checked","true");
     document.all.checked1.value=",";
     document.all.unchecked1.value=",";
     setcheck(node,"true"); 
     FindCheckedFromNode(TreeView1);
    }
    //刷新
    function reg()
    {
     document.all.checked1.value=",";
     document.all.unchecked1.value=",";
     //setcheck(node,"true"); 
     FindCheckedFromNode(TreeView1);
    }function abc()
    {

    saveviwe(document.all.TextBox1.value);
    reg();
    }function saveviwe(aa)
    { var AllRootNode=new Array();
     AllRootNode=TreeView1.getChildren();
     AlertNode(AllRootNode);    function AlertNode(NodeArray)
     {
      if(parseInt(NodeArray.length)==0)
       return;
      else
      {
       for(var i=0;i<NodeArray.length;i++)
       {
        var cNode;
        cNode=NodeArray[i];
        if(aa.indexOf(","+cNode.getAttribute("NodeData")+",") >-1)
         cNode.setAttribute("Checked",true);
        
       
        
        if(parseInt(cNode.getChildren().length)!=0)
         AlertNode(cNode.getChildren());    
       }
      }
     }
    }
    //oncheck事件
    function tree_oncheck(tree)
    {
     var node=tree.getTreeNode(tree.clickedNodeIndex);
     var Pchecked=tree.getTreeNode(tree.clickedNodeIndex).getAttribute("checked");
     setcheck(node,Pchecked);
     document.all.checked1.value=",";
     document.all.unchecked1.value=",";
     FindCheckedFromNode(TreeView1);
    }
    //设置子节点选中
    function setcheck(node,Pc)
    {
     var i;
     var ChildNode=new Array();
     ChildNode=node.getChildren();
     
     if(parseInt(ChildNode.length)==0)
      return;
     else
     {
      for(i=0;i<ChildNode.length;i++)
      {
       var cNode;
       cNode=ChildNode[i];
       if(parseInt(cNode.getChildren().length)!=0)
        setcheck(cNode,Pc);
       cNode.setAttribute("Checked",Pc);
      }
     }
    }
    //获取所有节点状态
    function FindCheckedFromNode(node) {
     var i = 0;
     var nodes = new Array();
     nodes = node.getChildren();
     
     for (i = 0; i < nodes.length; i++) {
      var cNode;
      cNode=nodes[i];
      if (cNode.getAttribute("Checked"))
      {
        AddChecked(cNode);
       }
      else
      {      AddUnChecked(cNode);
       }
      
      if (parseInt(cNode.getChildren().length) != 0 ) {
       FindCheckedFromNode(cNode);
      }
     }
    }
    //添加选中节点
    function AddChecked(node) {
     document.all.checked1.value += node.getAttribute("NodeData");
     document.all.checked1.value += ',';
    }
    //添加未选中节点
    function AddUnChecked(node) {
     document.all.unchecked1.value += node.getAttribute("NodeData");
     document.all.unchecked1.value += ',';
    }function set_check()
       {
        var nodeindex = "0";
        var node=TreeView1.getTreeNode(nodeindex);
        node.setAttribute("Checked","True");
        TreeView1.queueEvent('oncheck', nodeindex);
       }
      
    //-->
    </script>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <P>
    <TABLE id="Table1" cellSpacing="1" cellPadding="1" width="300" border="1">
    <TR>
    <TD><asp:label id="Label1" runat="server">checked</asp:label></TD>
    <TD><FONT face="宋体"><INPUT id="checked1" type="text" size="32" name="checked1" runat="server"></FONT></TD>
    </TR>
    <TR>
    <TD><asp:label id="Label2" runat="server">unchecked</asp:label></TD>
    <TD><FONT face="宋体"><INPUT id="unchecked1" type="text" size="32" name="unchecked1" runat="server"></FONT></TD>
    </TR>
    <TR>
    <TD><input onclick="set_check()" type="button" value="set check"></TD>
    <TD><asp:button id="Button1" runat="server" Text="submit"></asp:button><asp:button id="Button2" runat="server" Text="Button"></asp:button><input onclick="abc()" type="button" value="select">
    <asp:button id="Button3" runat="server" Text="Button"></asp:button></TD>
    </TD></TR>
    </TABLE>
    <br>
    <iewc:treeview id="TreeView1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 152px"
    runat="server" EnableViewState="False">
    <iewc:TreeNode NodeData="0" CheckBox="True" Text="Node0">
    <iewc:TreeNode NodeData="1" CheckBox="True" Text="Node1"></iewc:TreeNode>
    <iewc:TreeNode NodeData="2" CheckBox="True" Text="Node2">
    <iewc:TreeNode NodeData="3" CheckBox="True" Text="Node3">
    <iewc:TreeNode NodeData="4" CheckBox="True" Text="Node4"></iewc:TreeNode>
    </iewc:TreeNode>
    </iewc:TreeNode>
    </iewc:TreeNode>
    <iewc:TreeNode NodeData="5" CheckBox="True" Text="Node5">
    <iewc:TreeNode NodeData="6" CheckBox="True" Text="Node6"></iewc:TreeNode>
    </iewc:TreeNode>
    <iewc:TreeNode NodeData="7" CheckBox="True" Text="Node7">
    <iewc:TreeNode NodeData="8" CheckBox="True" Text="Node8">
    <iewc:TreeNode NodeData="9" CheckBox="True" Text="Node9"></iewc:TreeNode>
    </iewc:TreeNode>
    </iewc:TreeNode>
    </iewc:treeview><asp:label id="Label3" style="Z-INDEX: 102; LEFT: 296px; POSITION: absolute; TOP: 168px" runat="server">Label</asp:label>
    <asp:TextBox id="TextBox1" style="Z-INDEX: 103; LEFT: 304px; POSITION: absolute; TOP: 208px"
    runat="server"></asp:TextBox></P>
    </form>
    </body>
    </HTML>
      

  2.   

    cs文件:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace WebTest
    {
    /// <summary>
    /// tree 的摘要说明。
    /// </summary>
    public class treecheckbox : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Label Label1;
    protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
    protected System.Web.UI.WebControls.Button Button1;
    protected System.Web.UI.WebControls.Button Button2;
    protected System.Web.UI.WebControls.Button Button3;
    protected System.Web.UI.WebControls.Label Label2;
    protected System.Web.UI.HtmlControls.HtmlInputText checked1;
    protected System.Web.UI.WebControls.Label Label3;
    protected System.Web.UI.WebControls.TextBox TextBox1;
    protected System.Web.UI.HtmlControls.HtmlInputText unchecked1; private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    TreeView1.Attributes.Add("oncheck","tree_oncheck(this)");
    if(!Page.IsPostBack)
    {
    //this.Response.Write("<script language=javascript> initchecknode();</script>");
    this.RegisterStartupScript("onload","<script language=javascript> initchecknode();</script>");
    }
    this.RegisterStartupScript("onload","<script language=javascript> reg();</script>");
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Button2.Click += new System.EventHandler(this.Button2_Click);
    this.Button3.Click += new System.EventHandler(this.Button3_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void Button1_Click(object sender, System.EventArgs e)
    {
     Response.Write(TreeView1.Nodes[0].Checked);
    } private void Button2_Click(object sender, System.EventArgs e)
    {

    } private void Button3_Click(object sender, System.EventArgs e)
    {
    this.Label3.Text = this.checked1.Value; 
    this.TextBox1.Text = this.Label3.Text;
    //this.Response.Write("<script language=javascript> abc("+this.Label3.Text+");</script>");
    this.RegisterStartupScript("jlk","<script language=javascript> abc();</script>");
    }
    }
    }
      

  3.   

    我也有一个类似的问题,楼主你解决了的话,把答案拷给我我给你分http://community.csdn.net/Expert/TopicView.asp?id=4465990
      

  4.   

    现在我想在客户端点击父节点的checkbox则下级也被选中,可是使用下面的代码,只能表面选中,在服务器端却得不到,请问有什么其它好法子 
    <script language=\"javascript\" > 
    function GetNode() 

    var choose; 
    var indexid; 
    indexid=TreeView1.clickedNodeIndex; 
    if (TreeView1.getTreeNode(indexid).getAttribute('Checked')) 

    choose=false; 

    else 

    choose=true; 

    TreeView1.getTreeNode(indexid).setAttribute('Checked',choose); 
    var NodeArray=new Array(); 
    NodeArray=TreeView1.getTreeNode(indexid).getChildren(); 
    for(i=0;i<NodeArray.length;i++) 

    var tempindex=indexid+"."+i; 
    TreeView1.getTreeNode(indexid).setAttribute('Checked',choose); 


    //--> 
    </script>