请教高手 在线等 关于vs.net2005中的treeview使用问题

hksl 2007-10-25 12:31:06
protected void BindDataDT()
{
kogbd.DataAccess.SqlService db=new kogbd.DataAccess.SqlService();
string sql = "select top 10 orgid,orgname,parentcode,selfcode from t_Organzation ";
mydataDT = db.GetDataTable(sql);
}
//treeview递归
public void InitTree(TreeNodeCollection tns, string parentid)
{
DataView dv =mydataDT.DefaultView;
dv.RowFilter = "parentcode=" + parentid;
TreeNode tn;
foreach (DataRowView drv in dv)
{
tn = new TreeNode();
tn.Text = drv["parentcode"].ToString()+"_" + drv["selfcode"].ToString() + drv["orgname"].ToString();
tn.Value = drv["selfcode"].ToString();
tns.Add(tn);

InitTree(tn.ChildNodes, tn.Value);
}
}

protected void Button2_Click(object sender, EventArgs e)
{
BindDataDT();
TreeNode node = new TreeNode();
node.Text = "办事机构";
node.Value = "0";
InitTree(TreeView2.Nodes, "0");
}

请问这有问题吗 怎么老通不过了报错
...全文
248 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishijie910123 2007-11-05
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//取得所有节点并返回DS
string empID = treeMenu.selectEmpInfoByEmpName(Session["EmpName"].ToString()).Tables[0].Rows[0]["EmpID"].ToString();
DataSet ds = treeMenu.SelectMobuldInfo(Int32.Parse(empID));
DataTable dt = new DataTable();
dt = ds.Tables[0];
AddNodes(dt, null, "0");
}

}
//递归添加节点
private void AddNodes(DataTable dt, TreeNode node, string id)
{
DataRow[] rows = dt.Select("ParentModuleID=" + id); //筛选出属于父节点“node”的子节点集合
foreach (DataRow dr in rows) //循环子节点集合
{
TreeNode nd = new TreeNode();
nd.Value = dr["quanXianID"].ToString(); //存放节点ID
nd.Text = dr["quanXianMingCheng"].ToString(); //设置节点名称
nd.ImageUrl = dr["imageURL"].ToString();//设置节点的图片
nd.NavigateUrl = dr["URl"].ToString();//设置节点的链接
nd.Target = "MainFrame";
this.AddNodes(dt, nd, nd.Value); //递归,添加该节点的子节点
if (node == null || id == "0")
{
TreeView1.Nodes.Add(nd); //添加至根节点
}
else
{
node.ChildNodes.Add(nd);//添加子节点
}
}
}

我的代码,你看看
hksl 2007-10-25
  • 打赏
  • 举报
回复
读到了
如果把递归哪里注释掉 就可以显示 parentcode为0的数据
hhbkiller 2007-10-25
  • 打赏
  • 举报
回复
先确认你的mydataDT 有没有取到数据吧,跟踪一下就看出来了
hksl 2007-10-25
  • 打赏
  • 举报
回复
说这里
tn.Text = drv["parentcode"].ToString()+"_" + drv["selfcode"].ToString() + drv["orgname"].ToString();

{"在位置 1 处没有任何行。"}

hhbkiller 2007-10-25
  • 打赏
  • 举报
回复
抱什么错,错误信息给出来撒
kyouken2007 2007-10-25
  • 打赏
  • 举报
回复
我总感觉你这种邦定怎么改都会有问题。。。
我的做法是先帮第一级节点,之后再开始调用递归。。

给你找个例子参考一下。。。

http://topic.csdn.net/u/20070921/16/6e0f507d-b5e3-43b6-a07a-e12031bdd704.html

虽然这里边只绑了2级菜单,多级的话你可以在addchildmenu1继续调用addchildmenu1。。。。
hksl 2007-10-25
  • 打赏
  • 举报
回复
to kyouken2007

索引超出范围。必须为非负值并小于集合大小。
参数名: index

kyouken2007 2007-10-25
  • 打赏
  • 举报
回复
少个地方

InitTree(tn, tn.Value);
kyouken2007 2007-10-25
  • 打赏
  • 举报
回复
//treeview递归
public void InitTree(TreeNode tns, string parentid)
{
DataView dv =mydataDT.DefaultView;
dv.RowFilter = "parentcode=" + parentid;
TreeNode tn;
foreach (DataRowView drv in dv)
{
tn = new TreeNode();
tn.Text = drv["parentcode"].ToString()+"_" + drv["selfcode"].ToString() + drv["orgname"].ToString();
tn.Value = drv["selfcode"].ToString();
tns.ChildNodes.Add(tn);

InitTree(tn.ChildNodes, tn.Value);
}
}

protected void Button2_Click(object sender, EventArgs e)
{
BindDataDT();
TreeNode node = new TreeNode();
node.Text = "办事机构";
node.Value = "0";
InitTree(TreeView2.Nodes[0], "0");
}
NekChan 2007-10-25
  • 打赏
  • 举报
回复
tn.Value

修改为

tn.NodeData
seedling_lq 2007-10-25
  • 打赏
  • 举报
回复
改成如下

protected void Button2_Click(object sender, EventArgs e)
{
BindDataDT();
TreeNode node = new TreeNode();
node.Text = "办事机构";
node.Value = "0";
TreeView2.Nodes.Add(node);

InitTree(TreeView2.Nodes[0].ChildNodes, "0");
}


【更新至2025年】2001-2025年上市公司数字化转型年报词频统计(吴非、赵宸宇、甄红线)(300+年报词频统计) 1、时间:2001-2025年 2、来源:上市公司年报 3、参考文献:企业数字化转型与资本市场表现——来自股票流动性的经验证据(吴非) 数字化转型如何影响企业全要素生产率(赵宸宇) 知识产权行政保护与企业数字化转型(甄红线) 4、方法说明:(1)参考吴非老师的做法,对人工智能技术、大数据技术、云计算技术、区块链技术、数字技术运用五个维度76个数字化相关词频进行统计 (2)参考赵宸宇老师的做法,对数字技术应用、互联网商业模式、智能制造、现代信息系统四个维度99个数字化相关词频进行统计 (3)参考甄红线老师的做法,对技术分类、组织赋能、数字化应用等类别下139个数字化相关词频进行统计 5、指标:年份、股票代码、公司简称、行业名称、行业代码、全文-文本总长度、仅英文-文本总长度、人工智能技术-吴、大数据技术-吴、云计算技术-吴、区块链技术-吴、数字技术运用-吴、数字技术应用-赵、互联网商业模式-赵、智能制造-赵、现代信息系统-赵、技术分类-人工智能技术-甄、技术分类-区块链技术-甄、技术分类-云计算技术-甄、技术分类-大数据技术-甄、组织赋能-人工智能技术-甄、组织赋能-云计算技术-甄、组织赋能-大数据技术-甄、组织赋能-广义数字技术-甄、数字化应用-技术创新-甄、数字化应用-流程创新-甄、数字化应用-业务创新-甄、人工智能、商业智能、图像理解、投资决策辅助系统、智能数据分析、智能机器人、机器学习、深度学习、语义搜索、生物识别技术、人脸识别、语音识别、身份验证、自动驾驶、自然语言处理、大数据、数据挖掘、文本挖掘、数据可视化、异构数据、征信、增强现实、混合现实、虚拟现实、云计算、流计算、图计算、内存计算、多方安全计算、类脑计算、绿色计算、认知计算等300+词频

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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