菜鸟求救,建treeview(两层,是两个数据表),如何在程序中递归实现呢???????????
以下是我们源码, 我感觉不能实现,请各个高手指教:
****************************************
***********************************
public class WebForm2 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Panel Panel1;
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
protected System.Web.UI.WebControls.DataGrid DataGrid1;
private void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
DataTable dt_Dept = this.GetDataSet("select * from 部門 dept inner join 職位 func on func.部門編號=dept.部門編號").Tables[0];
InitTree(TreeView1.Nodes,"1");
}
}
private SqlConnection NewConnection()
{
return new SqlConnection("server=localhost;uid=sa;pwd=sa;Database=小程序");
}
private DataSet GetDataSet(string strSql)
{
DataSet ds = new DataSet();
SqlConnection sqlconn = this.NewConnection();
sqlconn.Open();
new SqlDataAdapter(strSql,sqlconn).Fill(ds);
sqlconn.Close();
sqlconn.Dispose();
return ds;
}
//从DataSet中取数据建树
//从根节点开始递归调用显示子树
private void InitTree(TreeNodeCollection Nds,string parenId)
{
TreeNode tmpNd;
DataRow[] rows=ds.Tables[1].Select("序號="+parenId);
foreach (DataRow row in rows)
{
tmpNd=new TreeNode();
tmpNd.ID=row["部門編號"].ToString();
tmpNd.Text=row["部門名稱"].ToString();
Nds.Add(tmpNd);
InitTree(tmpNd.Nodes,tmpNd.ID);
}
}