treeView控件的使用
下面是我用treeview控件做的权限
所有的权限都在数据库一张表中了如何
如图
显示的效果如下
我下面要说的就是
在数据库中读取到一张表中
有两种方法
一个是先把它放在xml中之后再通过treeview控件直接读取
一种是在后台直接读取放在treeview控件当中,当然是读到xml控件好理解
但是以一种缺陷就是延迟加载,不适合用作权限读取
因为他只有在读取第二遍的时候才会把这个人的真正权限读取出来,第一次是读取上一个人的
下面是我给大家分享的代码,希望大家各自所需
注意身份检测数据库是没有的,是我们在外面代码中自己添加进去
此treeview没有用xml
AddTrees((TreeNode)null); //获取方法下面
TreeView1.ExpandDepth = 1; //展开第几级目录
TreeView1.ExpandAll(); //全部展开目录
public void AddTrees(TreeNode pNode) //首目录数据库是没有的 是我们自己加的
{ //这就不需要递归运算
TreeNode Node = new TreeNode();
Node.Text = “身份检测”;
TreeView1.Nodes.Add(Node);
AddTree(00, Node);
}
//递归添加树的节点
//递归运算
public void AddTree(int ParentID, TreeNode pNode)
{
DataView dvTree = new DataView(dt);
if (ParentID == 00)
{
dvTree.RowFilter = “Len(FJBH) = ” + 3; //过滤掉没有用的目录
}
else
{
dvTree.RowFilter = “[FJBH] = \'” + ParentID+”\'”;
}
foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
//if (pNode == null)
//{ //添加根节点
// if (Row[“DHDZ”].ToString() != “”)
// {
// Node.Text =Row[“XSBT”].ToString();
// Node.NavigateUrl = Row[“DHDZ”].ToString();
// Node.Target = “iframepage”;
// }
// TreeView1.Nodes.Add(Node);
// AddTree(Int32.Parse(Row[“BH”].ToString()), Node); //再次递归
//}
//else
//{ //添加当前节点的子节点
if (Row[“DHDZ”].ToString() != “”)
{
Node.Text = Row[“XSBT”].ToString();
Node.NavigateUrl = Row[“DHDZ”].ToString();
Node.Target = “iframepage”;
}
pNode.ChildNodes.Add(Node);
// Node.Expanded = false;
AddTree(Int32.Parse(Row[“BH”].ToString()), Node); //再次递归
// }
}
dvTree.Dispose();
}
这个是用xml做的 当用做权限的时候 有时会延迟加载 做一些活便的东西可以可以使用
加载xml首要东西
XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath(“~/App_Data/BMBL.xml”));
xd.DocumentElement.InnerText = “”;
XmlElement node = xd.DocumentElement;
AddTree(xd, node, “top”);
xd.Save(Server.MapPath(“~/App_Data/BMBL.xml”));
读取方法 也可以用递归运算
private void AddXmlNode(XmlDocument xd, XmlElement cnode, string tid)
{
foreach (DataRow row in dt.Rows)
{
//稍做修改,以适应权限和树的逻辑
if (row[“FJBH”].ToString() == tid && row[“DHDZ”].ToString() != “”)
{
XmlElement node = xd.CreateElement(“CNode”);
node.SetAttribute(“title”, row[“XSBT”].ToString());
node.SetAttribute(“url”, row[“DHDZ”].ToString());
string tids = row[“BH”].ToString();
cnode.AppendChild(node);
AddXmlNode(xd, node, tids);
}
}
}
希望对大家有用