1.先在FORM_LOAD时把顶级的节点加上。
private void Form_Load(Object sender,System.EventArgs e)
{
...
OleDbDataAdapt oDa = New OleDbDataAdapter("Select product_code,product_name from table1 where len(product_code)=2", oDbConn);
oDa.Fill(ds,"table1")
for(i=0;i<ds.Tables[0].Rows.Count;i++)
{
TreeNode NodeX =New TreeNode();
NodeX.Text = ds.Tables[0].Rows[i]["product_name"];
NodeX.Tag = ds.Tables[0].Rows[i]["product_code"];
NodeX.Nodes.Add("")
treeview1.Nodes.Add(NodeX)
}
}
private void Form_Load(Object sender,System.EventArgs e)
{
...
OleDbDataAdapt oDa = New OleDbDataAdapter("Select product_code,product_name from table1 where len(product_code)=2", oDbConn);
oDa.Fill(ds,"table1")
for(i=0;i<ds.Tables[0].Rows.Count;i++)
{
TreeNode NodeX =New TreeNode();
NodeX.Text = ds.Tables[0].Rows[i]["product_name"];
NodeX.Tag = ds.Tables[0].Rows[i]["product_code"];
NodeX.Nodes.Add("")
treeview1.Nodes.Add(NodeX)
}
}
你可以选把要的表中的记录取出来,放入数据集中,建个DataView dv,用dv.Filter过滤要的记录,递归例举记录,如:先选出01类的记录,放在根节点。然后查询数据集中为0101类的记录,然后把它加入到treeview子节点,类推。
说明:每个根节点下面添加一个空节点“”,ImageIndex (0-表示节点尚未展开)2.每次点击节点扩展前,为该节点添加实际的子节点加如下代码:
private void treeview1_BeforeExpand(Object sender,System.Windows.Forms.TreeViewCancelEventArgs e)
{
If (e.Node.ImageIndex == 1) return;
If((e.Node.GetNodeCount(False)==1)&&(e.Node.Nodes(0).Text==""))
{
e.Node.Nodes(0).Remove();
EnumerateDirs(e.Node); //自定义的子节点添加函数
}
}
{
string strSQL;
strSQL = "Select * from table1 Where product_code Like '" + oParent.Tag + "[0-9][0-9]'";
OleDbDataAdapter oDa=new OleDbDataAdapter(strSQL,oConn);
DataSet ds = New DataSet();
oDa.Fill(ds); oParent.SelectedImageIndex = 1
foreach(DataRow dRow In ds.Tables(0).Rows)
{
TreeNode oNode =new TreeNode();
oNode.Text = dRow("product_name");
oNode.Tag = dRow("product_code");
oNode.ImageIndex = 0;
oParent.Nodes.Add(oNode);
oNode.Nodes.Add("");
}
ds.Close();
}