有什么办法让他别这里厉害

解决方案 »

  1.   

    就一个CLICK事件
    主要是我把ATOPOSTBACK设置为TRUE
      

  2.   

    private void Page_Load(object sender, System.EventArgs e)
    {


    if(!IsPostBack)
    {
    InitTree(TreeView1.Nodes,"00");
    }

    }

    private  void  InitTree(TreeNodeCollection Nds,string ParentId)
    {     


    DataSet ds=new DataSet();
    SqlConnection Conn=new SqlConnection(con);
    Conn.Open();
    string menuselect="select NodeId,NodeName,ParentId from AT_Menu ";
    SqlDataAdapter myCmd=new SqlDataAdapter(menuselect,Conn);
    myCmd.Fill(ds,"AT_Menu");
    Conn.Close();
    DataView dv=new DataView();
    string intId;
    dv.Table=ds.Tables[0];
    dv.RowFilter="ParentId='"+ParentId+"'";
    foreach(DataRowView drv in dv)
    {
    TreeNode Tnode=new TreeNode();
    Tnode.ID=drv["NodeId"].ToString();
    Tnode.Text=drv["NodeName"].ToString();
    Tnode.CheckBox=true;
    Nds.Add(Tnode); 
    intId=drv["ParentId"].ToString();
    InitTree(Tnode.Nodes,Tnode.ID);
    }
               
    }
    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.TreeView1.Check += new Microsoft.Web.UI.WebControls.ClickEventHandler(this.TreeView1_Check);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    private void TreeView1_Check(object sender, Microsoft.Web.UI.WebControls.TreeViewClickEventArgs e)
    {
            
                         TextBox1.Text=e.Node.ToString();
    }
    }

    }
    这是代码
    你帮我看看
      

  3.   

    感觉是AutoPostBack的事吧,不能换一种方法做吗?
      

  4.   

    我现在把AutoPostBack改成FALSE
    换成按钮 还是这样
    代码: 
    private void Page_Load(object sender, System.EventArgs e)
    {


    //TreeNode item = new TreeNode();
    //Tnode.Text="father";
    //item.Text = "dff";
    //node.Nodes.Add(item);
    //TreeView1.Nodes.Add(node);
    if(!IsPostBack)
    {
    InitTree(TreeView1.Nodes,"00");
    }

    }

    private  void  InitTree(TreeNodeCollection Nds,string ParentId)
    {     


    DataSet ds=new DataSet();
    SqlConnection Conn=new SqlConnection(con);
    Conn.Open();
    string menuselect="select NodeId,NodeName,ParentId from AT_Menu ";
    SqlDataAdapter myCmd=new SqlDataAdapter(menuselect,Conn);
    myCmd.Fill(ds,"AT_Menu");
    Conn.Close();
    DataView dv=new DataView();
    string intId;
    dv.Table=ds.Tables[0];
    dv.RowFilter="ParentId='"+ParentId+"'";
    foreach(DataRowView drv in dv)
    {
    TreeNode Tnode=new TreeNode();
    Tnode.ID=drv["NodeId"].ToString();
    Tnode.Text=drv["NodeName"].ToString();
    Tnode.CheckBox=true;
    Nds.Add(Tnode); 
    intId=drv["ParentId"].ToString();
    InitTree(Tnode.Nodes,Tnode.ID);
    }
               
    }
    #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.Load += new System.EventHandler(this.Page_Load); }
    #endregion

    private void Button1_Click(object sender, System.EventArgs e)
    {
    foreach(TreeNode node in TreeView1.Nodes)
    if(node.Checked==true)
                       TextBox1.Text+=node.ID.ToString();
    }
    }

    }
      

  5.   

    TREEVIEW 响应CHECKBOX的CLICK事件的时候刷新的太离谱了 
    离谱成什么样子啦?有什么现象?
    看病需“望、闻、问、切”
      

  6.   

    asp.net 如果你用的是服务器控件的话,这个是不可以避免的!
    因为它都会往服务端返回信息和接受信息。
    所以没有什么必要的话,还是用客户端控件为先!
      

  7.   

    建议用客户端脚本操作 treeview 的 checkbox,请参见:http://dev.csdn.net/develop/article/29/29028.shtm