//
<summary>
///
TreeView数据绑定
///
</summary>
///
<param
name="list"></param>
protected
void
CreateTreeView()
{
TreeNode
rootNode
=
new
TreeNode()
rootNode.Text
=
"全部"
rootNode.Value
=
"-1"
BasicTypeTreeView.Nodes.Add(rootNode)
BasicInformationManager
BasicManager
=
new
BasicInformationManager()
var
tlist
=
BasicManager.GetAllBasicInfoTypes()
foreach
(Model.BasicInforType
mtype
in
tlist)
{
if
(mtype.ParentID
==
0)
{
TreeNode
Node
=
new
TreeNode()
//添加根节点
Node.Text
=
mtype.BasicTypeName
Node.Value
=
mtype.ID.ToString()
Node.ToolTip
=
"编码"
+
mtype.BasicCode
getSubNode(ref
Node,
mtype.ID)
rootNode.ChildNodes.Add(Node)
}
}
}
///
<summary>
///
获取treeView子节点
///
</summary>
///
<param
name="node"></param>
///
<param
name="item"></param>
public
void
getSubNode(ref
TreeNode
node,
int
item)
{
BasicInformationManager
BasicManager
=
new
BasicInformationManager()
var
tlist
=
BasicManager.GetBasicInforTypeByParentId(item)
if
(tlist.Count
>
0)
{
foreach
(Model.BasicInforType
m
in
tlist)
{
TreeNode
subNode
=
new
TreeNode()
subNode.Text
=
m.BasicTypeName
subNode.Value
=
m.ID.ToString()
subNode.ToolTip
=
"编码"
+
m.BasicCode
getSubNode(ref
subNode,
m.ID)
node.ChildNodes.Add(subNode)
//进行子节点循环添加
}
}
}
数据表:CREATE TABLE CateTable (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[CateName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[RootID] [int] NOT NULL ,
[ParentID] [int] NOT NULL
)
GO
存储过程:
CREATE PROCEDURE CateTable_GetList AS
BEGIN
Select
CateID,
CateName,
RootID,
ParentID
From
CateTable
Order By
CateID,RootID,ParentID
END
代码:
private void MainForm_Load(object sender, EventArgs e)
{
//从数据库中读取数据
SqlConnection con = new SqlConnection(ConnString.ConStr)
SqlCommand cmd = new SqlCommand("CateTable_GetList", con)
cmd.CommandType = CommandType.StoredProcedure
SqlDataAdapter sda = new SqlDataAdapter(cmd)
DataSet ds = new DataSet()
try
{
sda.Fill(ds)
}
catch
{
}
finally
{
cmd = null
con.Close()
}
//往TreeView中添加树节点
//添加根节点
TreeNode tn = new TreeNode()
tn.Text = "种类"
tn.Name = "0"//Name作为ID
tn.Tag = "0"//Tag作为RootID
tn.ImageIndex = 0
tn.SelectedImageIndex = 0
tv.Nodes.Add(tn)//该TreeView命名为tv
tv.SelectedNode = tv.TopNode
//把其他节点加上去
if (ds != null)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
tn = new TreeNode()
tn.Text = dr["CateName"].ToString()
tn.Name = dr["CateID"].ToString()//Name作为CateID
tn.Tag = dr["RootID"].ToString()//Tag作为RootID
tn.ImageIndex = 1
tn.SelectedImageIndex = 1
//判断是否为主节点
if (dr["CateID"].ToString() == dr["RootID"].ToString())
{
//主节点
tv.SelectedNode = tv.TopNode
}
else
{
//其他节点
if (tv.SelectedNode.Name != dr["ParentID"].ToString())
{
TreeNode[] tn_temp = tv.Nodes.Find(dr["ParentID"].ToString(), true)
if (tn_temp.Length >0)
{
tv.SelectedNode = tn_temp[0]
}
}
}
tv.SelectedNode.Nodes.Add(tn)
}
tv.ExpandAll()//展开TreeView
tv.SelectedNode = tv.TopNode
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)