我现在做的treeview有个问题! 数据更新后无法在页面更新 只有关闭后再打开才行!  也就是绑定数据无法重新加载
 好像缺少一个类似于 GridView1.DataBind();  这样一个绑定属性!
我想点击一个按钮或点击子节点后 控件的内容会重新从数据库中读一次!
  
下边是我的绑定代码!
    
    public void treeviewbd()
    {
        string sql = "select distinct  分组编号 from 试题数据";
        SqlConnection myconn = DB.mysqlconnection();
        myconn.Open();
        SqlDataAdapter adapter = new SqlDataAdapter(sql, myconn);        DataSet ds = new DataSet();
        adapter.Fill(ds, "sysobject");        foreach (DataRow dataRow in ds.Tables["sysobject"].Rows)
        {
            // 取得当前分组编号 
            string firstText = dataRow["分组编号"].ToString();
            // 生成第一级节点 
            TreeNode node = new TreeNode();
            node.SelectAction = TreeNodeSelectAction.Expand;
            node.Text = firstText;            // 取得当前分组下所有题号 
            string sqlChild = "Select ID,题组编号,成绩 from 试题数据 where 分组编号='" + firstText + "'";
            SqlDataAdapter childAdapter = new SqlDataAdapter(sqlChild, myconn);
            DataSet childDs = new DataSet();
            childAdapter.Fill(childDs);
            if (!IsPostBack)
            {
                DB.stid_cz = childDs.Tables[0].Rows[0][0].ToString();
                this.st_text();
            }            foreach (DataRow childRow in childDs.Tables[0].Rows)
            {
                // 循环取题号
                string childMenu = childRow["题组编号"].ToString();
                string childid = childRow["ID"].ToString();
                string childcj= childRow["成绩"].ToString();                // 生成二级节点 
                TreeNode childNode = new TreeNode();
                childNode.Text = childMenu + "________得分:"+childcj;
                childNode.Value = childid;
                node.ChildNodes.Add(childNode);
            }
            TreeView1.Nodes.Add(node);
        }

解决方案 »

  1.   

    怎么绑定?
    TreeView1.Nodes.Add(node);
      用这个就OK了吧!
      

  2.   

    改用绑定数据库数据源dataSource的方式,
    最后DataBind()
      

  3.   

    这是手写绑定吧,把foreach语句封装到一个函数中,例如initTreeView()
    然后页面加载以及每次你点按钮,就调用initTreeView(),
    函数里面第一行最好先把所有节点清掉
      

  4.   

    ... 3楼用不了!
          那样要换方法去做整个treeview的绑定了!
         最好能在现在代码的基础上去改!  人笨 经不起折腾!