student表:
编号 年级 班级 姓名..
001  初一 1班  AA
002  初一 1班  BB
003  初一 1班  ER
004  初一 2班  SE
005  初二 1班  CC
...
TREEVIEW的效果如下:
初一
┕1班
 ┕AA
    BB
    ER
初二
┕2班
  ┕CC
当我点BB时就打开:VIEW.ASPX?ID=002

解决方案 »

  1.   

     protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {  //勿删除法律法规根节点
                TreeNode RootNode = new TreeNode();
                RootNode.Text = "班级";
                RootNode.Value = "-1";
                TreeView1.Nodes.Add(RootNode);
                InitNavigationTreeNode(RootNode, RootNode.Value);      
            }
        }
             public void InitNavigationTreeNode(TreeNode treeNode, string NodeID)
        {
            DataView dvw = new DataView();
            TreeNode nodTemp;
            if (orderid == 0)
            {
                treeNode.ChildNodes.Clear();
            }
            dvw.Table = GetList(" id='" + NodeID + "' ");
            foreach (DataRowView drv in dvw)
            {
                orderid++;
                nodTemp = new TreeNode();
                nodTemp.Value = drv["ID"].ToString();
                nodTemp.Text = drv["sutdentname"].ToString();
                nodTemp.NavigateUrl = drv["url"].ToString();
                treeNode.ChildNodes.Add(nodTemp);
                InitNavigationTreeNode(nodTemp, nodTemp.Value);
            }
        }
        /// <summary>
    /// 获得数据列表
    /// </summary>
    public DataTable GetList(string strWhere)
    {//需要using system.Text
    StringBuilder strSql=new StringBuilder();
            strSql.Append("select * ");
    strSql.Append(" FROM student");
    if(strWhere.Trim()!="")
    {
    strSql.Append(" where "+strWhere);
    }
                     data sqldata=new data();
    return sqldata.GetTable(strSql.ToString());//这块换成自己的数据库操作对象
    }
      

  2.   

    谢谢了,我试一下,但是点AA,怎么打开VIEW.ASPX?ID=001啊
      

  3.   

    呵呵 这还不简单
    nodTemp.NavigateUrl = "VIEW.ASPX?ID="+drv["ID"].ToString(); 
      

  4.   

      我的获取数据库是这样的:
        SqlDataAdapter comm = new SqlDataAdapter("select * from manage_student_info where 年度=@niandu order by 学号", conn);
                comm.SelectCommand.Parameters.AddWithValue("@niandu", (string)Session["Xuenian"]);
                conn.Open();
                DataSet ds = new DataSet();
                comm.Fill(ds);
                conn.Close();
         ______
    怎么加到下面去?:
    public DataTable GetList(string strWhere) 
    {//需要using system.Text 
    StringBuilder strSql=new StringBuilder(); 
            strSql.Append("select * "); 
    strSql.Append(" FROM student"); 
    if(strWhere.Trim()!="") 

    strSql.Append(" where "+strWhere); 

                     data sqldata=new data(); 
    return sqldata.GetTable(strSql.ToString());//这块换成自己的数据库操作对象 
    }
      

  5.   

    DataTabel dt=GetList("年度='"+"2007"+"' order by 学号");
      

  6.   

    public DataTable GetList(string strWhere)  
    {
      StringBuilder strSql=new StringBuilder();  
            strSql.Append("select * ");  
    strSql.Append(" FROM student");  
    if(strWhere.Trim()!="")  
    {  
    strSql.Append(" where "+strWhere);  
    }   SqlDataAdapter comm = new SqlDataAdapter(strsql.ToString(), conn); 
                comm.SelectCommand.Parameters.AddWithValue("@niandu", (string)Session["Xuenian"]); 
                conn.Open(); 
                DataSet ds = new DataSet(); 
                comm.Fill(ds); 
                conn.Close();   return ds.Table[0];
    }
      

  7.   


    提示错误:
    1,orderid未声明;orderid的初始值是哪里获得?
    我简单了声明了一下,可是只显示班级,其它的什么也没有,
      

  8.   

    我简单了声明了一下,可是只显示班级,其它的什么也没有
    -----------------------------
    哦,你可以做个添加功能往里面添数据
    数据库机构应该是id name fid(父编号)...其他字段在添加的时候把父编号添为你选择的结点就好了
      

  9.   

    TO everyone   is   no.1:
    哦,你可以做个添加功能往里面添数据 
    数据库机构应该是 id name fid(父编号)...其他字段 在添加的时候把父编号添为你选择的结点就好了 
    ___________________________
    我不会做这个啊,你帮我写一下吧,拜托,我真不会,还有,orderid未声明怎么会事呢?谢谢了