为何在TREEview中添加节点后,节点加上了,但没有显示层级?

zhangzwa 2008-07-06 01:47:50
代码如下,是用递归加上去的。结果是节点都加上去了,但好像统一都加到跟节点上了,没有显示层次。

如何让TREEVIEW按照层次显示。


DataTable myDT = Convertdrtodt(myDS);

DataRow[] tmpDR = myDT.Select("DeptID = UpDeptID");

Response.Write(tmpDR[0][0]);

TreeNode myNode = new TreeNode(tmpDR[0][1].ToString());

tvDept.Nodes.Add(myNode);

LoadChildDepartMent(tmpDR[0][0].ToString(), myNode, myDT);


private void LoadChildDepartMent(string currentDeptCode, TreeNode parentNode, DataTable myDT)
{


//dtData.DefaultView.RowFilter = "DeptID = UpDeptID";

//TreeNode myNode = new TreeNode(myDT.DefaultView.Find("DeptID = UpDeptID"));

DataRow[] tmpDR = myDT.Select("DeptID <> UpDeptID AND UpdeptID = '" + currentDeptCode + "'") ;

for (int i = 0; i <= tmpDR.Length - 1; i++)
{
TreeNode myNode = new TreeNode(tmpDR[i][1].ToString());
tvDept.Nodes.Add(myNode);
LoadChildDepartMent(tmpDR[i][0].ToString(), myNode, myDT);
}
}
...全文
106 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzwa 2008-07-06
  • 打赏
  • 举报
回复
终于搞定了,非常感谢houdejun214兄弟的支持。

也感谢大雄兄弟支持。
daxiong105 2008-07-06
  • 打赏
  • 举报
回复
 
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
InitTree(TreeView1.Nodes, "0", username);
}
}
protected void InitTree(TreeNodeCollection Nds, string parentMenuId)
{

DataView dv = new DataView();
TreeNode tmpNode;
//从数据库取出数据
dv.Table = Convertdrtodt(myDS);
dv.RowFilter = "ParentID=" + "'" + parentMenuId + "'";
foreach (DataRowView drv in dv)
{
tmpNode = new TreeNode();
//菜单ID
tmpNode.Value = drv["MenuID"].ToString();
//结点名称
tmpNode.Text = drv["MenuName"].ToString();
//结点处于合并状态
tmpNode.Expanded = false;
//增加结点
Nds.Add(tmpNode);
//递归调用,绑定下级菜单
InitTree(tmpNode.ChildNodes, tmpNode.Value);
}
}


你可以试试
houdejun214 2008-07-06
  • 打赏
  • 举报
回复
忘了是在Web下编程
在非顶级节点添加子节点用ChildNodes属性所以上面的代码更改为
parentNode.ChildNodes.Add(myNode);
zhangzwa 2008-07-06
  • 打赏
  • 举报
回复
思路基本没有问题,我现在主要的问题是:如何在TREEVIEW中添加子节点的问题?
zhangzwa 2008-07-06
  • 打赏
  • 举报
回复
我看网上很多方法都可以通过 myNode.Nodes.add(myChildNode);的语法加节点;

但我是在vwd中编辑的,环境是asp.net2.0。用以上语法添加节点总是报错,编辑器也不能智能带出。

请问在asp.net2.0中如何添加子节点?
daxiong105 2008-07-06
  • 打赏
  • 举报
回复
提供个思路:先加父节点,加完第一个后递归调用一个方法添加子节点,直到加完该节点的所有子节点,然后加第二个父节点
zhangzwa 2008-07-06
  • 打赏
  • 举报
回复
我查了一下,的确是都加到根节点了。
但是 parentNode.Nodes.Add(myNode)的语法有问题,系统过不了啊。
改成 parentNode.Nodes.Add(myNode) 也不行;

不知各位大侠有无其他方法,请指教。
houdejun214 2008-07-06
  • 打赏
  • 举报
回复
你所有的节点都加到了根节点上
tvDept.Nodes.Add(myNode);
LoadChildDepartMent这个方法可改为
private void LoadChildDepartMent(string currentDeptCode, TreeNode parentNode, DataTable myDT)
{

DataRow[] tmpDR = myDT.Select("DeptID <> UpDeptID AND UpdeptID = '" + currentDeptCode + "'") ;

for (int i = 0; i <= tmpDR.Length - 1; i++)
{
TreeNode myNode = new TreeNode(tmpDR[i][1].ToString());
parentNode.Nodes.Add(myNode);
LoadChildDepartMent(tmpDR[i][0].ToString(), myNode, myDT);
}
}
zhangzwa 2008-07-06
  • 打赏
  • 举报
回复
up一下。
zhangzwa 2008-07-06
  • 打赏
  • 举报
回复
兄弟们,帮忙看看。急!

110,825

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧