问题描述
protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){try{SqlConnectionCN=newSqlConnection("server=IT-PC;uid=sa;pwd=123456;database=DiscreteMath1");//初始化连接字符串CN.Open();//添加命令,从数据库中得到数据SqlCommandsqlCmd=newSqlCommand();sqlCmd.Connection=CN;sqlCmd.CommandType=CommandType.Text;SqlDataAdapteradp=newSqlDataAdapter("select*fromMenu_info",CN);//获取树形目录节点DataSetda=newDataSet();adp.Fill(da);this.ViewState["da"]=da;}catch(Exceptionex){}finally{}//调用递归函数,完成树形结构的生成AddTree(0,(TreeNode)null);}}//递归添加树的节点参数ParentID为树的最大父节点publicvoidAddTree(intParentID,TreeNodepNode){DataSetda=(DataSet)this.ViewState["da"];DataViewdv_=newDataView(da.Tables[0]);dv_.RowFilter="[Par_ID]="+ParentID;//过滤ParentID,得到当前的所有子节点Par_ID为父节点ID//循环递归foreach(DataRowViewRowindv_){//声明节点TreeNodeNode=newTreeNode();//开始递归if(pNode==null){//添加根节点Node.Text=Row["Menu_name"].ToString();TreeView1.Nodes.Add(Node);Node.Expanded=false;//AddTree(Int32.Parse(Row["ID"].ToString()),Node);//再次递归}else{//添加当前节点的子节点Node.Text=Row["Menu_name"].ToString();pNode.ChildNodes.Add(Node);Node.Expanded=false;AddTree(Int32.Parse(Row["ID"].ToString()),Node);//再次递归pNode.Target="info";}}}