求C#码: 用SQL Server表table填充treeview1并为各分支加复选框
求C#代码把SQL Server中表table的数据填充到treeview1,先建立一个根名为“全部区本”,第一级分支是a,b,c三个分支,a,b,c分支都有两个子分支即1,2。 同时为两级分支都设有复选框。要求在一个form_load里完成以上所有动作。
已有SQL Server表table数据如下:
id father son
1 a 1
2 a 2
3 b 1
4 b 2
5 c 1
6 c 2
------解决方案--------------------------------------------------------
private void Page_Load(object sender, System.EventArgs e)
{
InitTreeView(this.TreeView1.Nodes);
// 在此处放置用户代码以初始化页面
}
public void InitTreeView(TreeNodeCollection node)
{
this.InitTree(node,"0");
}
public void InitTree(TreeNodeCollection Nds,string parentId)
{
DataSet ds=new DataSet();
ds=myDt.TreeInfo();
DataView dv = new DataView();
TreeNode tmpNd;
string intId;
dv.Table = ds.Tables[0];
dv.RowFilter = "PARENTID = " + parentId;
foreach(DataRowView drv in dv)
{
tmpNd = new TreeNode();
tmpNd.ID = drv["NODEID"].ToString();
if(drv["linkUrL"].ToString().Trim() != "")
{
tmpNd.Text = "<a href ='"+drv["linkUrL"].ToString().Trim() +"'target='mainFrame'>"+drv["NODENAME"].ToString()+"</a>";
}
else
{
tmpNd.Text = drv["NODENAME"].ToString();
}
Nds.Add(tmpNd);
intId = drv["PARENTID"].ToString();
InitTree(tmpNd.Nodes,tmpNd.ID);
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
------解决方案--------------------------------------------------------
private void FrmTree_Load(object sender, EventArgs e)
{
FillTreeView();