TreeView控件代码分析?
是关于TreeView菜单控件操作的代码,理解的不是很透彻,帮我解释分析下!!!protected void Page_Load(object sender, EventArgs e)
{
Bind(TreeView1.Nodes, "f");// }
Class1 get = new Class1();
protected void Bind(TreeNodeCollection Nods, string parenid)
{
TreeNode NewNode;
DataSet ds = get.getAll();
DataRow[] rows = ds.Tables[0].Select("parentid='" + parenid + "'");// foreach (DataRow row in rows)
{
NewNode = new TreeNode(row["name"].ToString(), row["PID"].ToString(), "", row//["calssname"].ToString(), "iright");
NewNode.Collapse();
Nods.Add(NewNode);
Bind(NewNode.ChildNodes, row["pid"].ToString());//
}
} --------------------编程问答-------------------- 不是你理解的不透彻,而是这段代码很混乱。 --------------------编程问答-------------------- 这段代码有点乱,不利于理解 --------------------编程问答-------------------- 这个代码书写确实不规范,但由于本身功能能很见到,所以还是很好理解啊:
Bind(TreeNodeCollection Nods, string parenid)是个迭代函数,
树这一类的嵌套结构一般就这样写了
--------------------编程问答-------------------- 勘误: "但由于本身功能能很见到"
更正为: "但由于本身功能很少" --------------------编程问答-------------------- 1.2楼咋么说代码乱,在这里看肯定没有在环境里看整齐啊, --------------------编程问答-------------------- Bind(NewNode.ChildNodes, row["pid"].ToString());//关键是这一句采用递归的方法。。。层层调用 --------------------编程问答-------------------- private void BindTreeview()
{
string sqlWhere = @" where parentid='0'"; //跟节点
List<category> listcategory = categoryBll.GetCategoryByUserid(sqlWhere);
foreach (category ca in listcategory)
{
TreeNode node = new TreeNode();
node.NavigateUrl = "";
node.Text = ca.Categoryname;
node.Value = ca.Categoryid.ToString();
node.Expanded = false;
tvCategory.Nodes.Add(node);
AddChildNode(node);
}
}
///
/// 添加子节点
///
private void AddChildNode(TreeNode node)
{
if (node.Value == null)
return;
int categoryid = Convert.ToInt32(node.Value);
string sqlWhere = " where parentid='" + categoryid + "' and (userid=1 or userid=0)";
List<category> listcategory = categoryBll.GetCategoryByUserid(sqlWhere);
TreeNode newNoed;
foreach (category ca in listcategory)
{
newNoed = new TreeNode();
newNoed.Text = ca.Categoryname;
newNoed.Value = ca.Categoryid.ToString();
node.ChildNodes.Add(newNoed);
AddChildNode(newNoed);
}
} --------------------编程问答-------------------- 是以前做的一个例子
查询语句可以自己定 --------------------编程问答-------------------- 我更不懂 --------------------编程问答-------------------- 可以学习 --------------------编程问答-------------------- 用递归绑定数据吧。。。。。。[align=center]***********************************************************
欢迎使用 CSDN 小秘书
http://blog.csdn.net/whowhen21
***********************************************************[/align] --------------------编程问答-------------------- 我是菜鸟。。。我想问下,怎么样能让树无限添加下一级?比如说。公司下添加部门,部门下添加具体部门。。。类似这样可以一直添加的。。。 --------------------编程问答-------------------- 直接node添加添加再添加
补充:.NET技术 , C#