问题描述
代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Data.SqlClient;usingSystem.Data;publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){SqlConnectionconn=newSqlConnection(@"server=192.168.0.226;database=discuz;uid=sa;pwd=841102");conn.Open();stringsqltxt=@"selectlayer,namefromdnt_forums";SqlCommandcmd=newSqlCommand(sqltxt,conn);SqlDataReadermyread=cmd.ExecuteReader();DataTabledt=newDataTable();dt=ConvertToDataTable(myread);TreeViewBind(dt);}privatevoidTreeViewBind(DataTabledt){DataRow[]rows=dt.Select("layer=0");foreach(DataRowdrvinrows){TreeNodenode=newTreeNode();node.Text=drv["name"].ToString();node.Value=drv["layer"].ToString();node.NavigateUrl="AddAdmin.aspx?id="+node.Value;node.Target="info";node.Expanded=false;TreeView1.Nodes.Add(node);}TreeView1.DataBind();}privatevoidAddchildtree(DataTabledt,TreeNodenode){DataRow[]rows=dt.Select("layer=1");foreach(DataRowrowinrows){TreeNodechildnode=newTreeNode();childnode.Text=row["name"].ToString();childnode.Value=row["layer"].ToString();childnode.NavigateUrl="AddAdmin.aspx?id="+childnode.Value;childnode.Target="info";childnode.Expanded=false;node.ChildNodes.Add(childnode);Addchildtree(dt,childnode);}}publicDataTableConvertToDataTable(SqlDataReaderdataReader){DataTabledt=newDataTable();DataTableschemaTable=dataReader.GetSchemaTable();try{//动态构建表,添加列foreach(DataRowdrinschemaTable.Rows){DataColumndc=newDataColumn();//设置列的数据类型dc.DataType=dr[0].GetType();//设置列的名称dc.ColumnName=dr[0].ToString();//将该列添加进构造的表中dt.Columns.Add(dc);}//读取数据添加进表中while(dataReader.Read()){DataRowrow=dt.NewRow();//填充一行数据for(inti=0;i<schemaTable.Rows.Count;i++){row[i]=dataReader[i].ToString();}dt.Rows.Add(row);row=null;}dataReader.Close();schemaTable=null;returndt;}catch(Exceptionex){//抛出异常thrownewException(ex.Message);}}}
现在能绑定根节点并显示,但是子节点要怎么调用搞不懂,Addchildtree()这个方法怎么用?
解决方案
解决方案二:
这个刚好适合:
解决方案三:
子节点要在添加一个父节点的时候调用
解决方案四:
引用2楼change_l的回复:
子节点要在添加一个父节点的时候调用
能不能具体说下要怎么用?我是新手+自学,没人指导,学得好吃力
解决方案五:
引用1楼sdl2005lyx的回复:
这个刚好适合:WinForm中TreeView数据绑定
谢谢这位大哥,我好好看下
解决方案六:
引用1楼sdl2005lyx的回复:
这个刚好适合:WinForm中TreeView数据绑定
解决方案七:
privatevoidTreeViewBind(DataTabledt){DataRow[]rows=dt.Select("layer=0");foreach(DataRowdrvinrows){TreeNodenode=newTreeNode();node.Text=drv["name"].ToString();node.Value=drv["layer"].ToString();node.NavigateUrl="AddAdmin.aspx?id="+node.Value;node.Target="info";node.Expanded=false;TreeView1.Nodes.Add(node);Addchildtree(dt,node);}TreeView1.DataBind();}