ASp.net中递归绑定TreeView

RYAN_530 2009-08-31 10:12:18


最近,菜鸟的我在研究递归绑定TreeView,达到多级菜单的效果,但总是实现不了...

急盼哪位大侠指点点...
...全文
103 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
RYAN_530 2009-08-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 moudy 的回复:]
你的结贴率怎么是0???

其中表:
id    sjid    bh      mc
1 0 01 医学视频
10 6 010104 新增加
11 1 0102 基础医学
12 11 010201 解剖学
13 11 010202 生理学
14 11 010203 病理学
15 11 010204 微生物与寄生虫学
16 11 010205 免疫学
17 11 010206 医学实验
18 11 010207 新增加


先把表读出来,存到this.ViewState["Menu"]中。然后调用BindTree()  ,OK了。


private void BindTree()
        {
            this.BindTree(this.TreeView1, "0", null);
        }

        public void BindTree(TreeView tvMenu, string Pid, TreeNode pNode)
        {
            DataTable dt = (DataTable)this.ViewState["Menu"];

            DataRow[] drr = dt.Select("sjid='" + Pid + "'");

            for (int i = 0; i < drr.Length; i++)
            {
                TreeNode Node = new TreeNode();
                Node.Text = drr[i]["mc"].ToString();
                Node.Value = drr[i]["id"].ToString();
                Node.ToolTip = Node.Text;

                Node.PopulateOnDemand = false;
                if (pNode == null)
                {
                    tvMenu.Nodes.Add(Node);
                }
                else
                {
                    pNode.ChildNodes.Add(Node);
                }
                BindTree(tvMenu, Node.Value, Node);
            }
        }
[/Quote]


为什么不直接读表里数据放到DataTable里 而要放到ViewState[key]里去...

方法是正确的 ...

谢了...
moudy 2009-08-31
  • 打赏
  • 举报
回复
你的结贴率怎么是0???

其中表:
id sjid bh mc
1 0 01 医学视频
10 6 010104 新增加
11 1 0102 基础医学
12 11 010201 解剖学
13 11 010202 生理学
14 11 010203 病理学
15 11 010204 微生物与寄生虫学
16 11 010205 免疫学
17 11 010206 医学实验
18 11 010207 新增加


先把表读出来,存到this.ViewState["Menu"]中。然后调用BindTree() ,OK了。


private void BindTree()
{
this.BindTree(this.TreeView1, "0", null);
}

public void BindTree(TreeView tvMenu, string Pid, TreeNode pNode)
{
DataTable dt = (DataTable)this.ViewState["Menu"];

DataRow[] drr = dt.Select("sjid='" + Pid + "'");

for (int i = 0; i < drr.Length; i++)
{
TreeNode Node = new TreeNode();
Node.Text = drr[i]["mc"].ToString();
Node.Value = drr[i]["id"].ToString();
Node.ToolTip = Node.Text;

Node.PopulateOnDemand = false;
if (pNode == null)
{
tvMenu.Nodes.Add(Node);
}
else
{
pNode.ChildNodes.Add(Node);
}
BindTree(tvMenu, Node.Value, Node);
}
}
moudy 2009-08-31
  • 打赏
  • 举报
回复
也可以啊,那你传参的时候每次都得把DATATABLE传过去。

62,039

社区成员

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

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

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

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