FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
查看: 11197|回复: 14
打印 上一主题 下一主题

谁那有动态加载tree子节点的例子

[复制链接]
跳转到指定楼层
楼主
发表于 2012-7-5 06:09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在项目中遇到个问题 由于树太庞大,想页面加载时先加载一级节点,当点击该节点时动态加载该节点的子节点。有做个这方面的给我实例 谢谢!!!
沙发
 楼主| 发表于 2012-7-6 15:17:27 | 只看该作者
呵呵 每次我发的帖子都没技术含量 自己搞定了
板凳
发表于 2012-7-17 05:32:31 | 只看该作者
怎么搞定的,介绍一下啊
地板
 楼主| 发表于 2012-7-17 16:05:55 | 只看该作者
本帖最后由 啃O 于 2012-7-17 16:07 编辑

树初始化时只加载两级目录,在节点事件里判断此节点在数据库是否存在子节点,如存在则在该节点添加子节点,但弊端就是每点一次节点,整个页面要进行全页刷新,有点不爽,启用Ajax新树节点加不上
5#
发表于 2012-7-30 12:59:45 | 只看该作者
我现在用的是treepanel是动态绑定的,不知道能不能入得了法眼哈
6#
 楼主| 发表于 2012-7-30 14:18:02 | 只看该作者
许先生 发表于 2012-7-30 12:59
我现在用的是treepanel是动态绑定的,不知道能不能入得了法眼哈

说说怎么弄的 我的一直不太完善
7#
发表于 2012-8-1 01:25:49 | 只看该作者
晒出来分享一下哈!
8#
发表于 2012-8-1 07:38:21 | 只看该作者
http://bbs.extasp.net/forum.php? ... &extra=page%3D1

看看这个帖子里我的那个回复。 代码回复上去后排版乱了,自己在VS里面用那个自动排版整理下。希望对你有帮助
9#
 楼主| 发表于 2012-8-2 01:48:45 | 只看该作者
Panda 发表于 2012-8-1 07:38
http://bbs.extasp.net/forum.php?mod=viewthread&tid=1047&extra=page%3D1

看看这个帖子里我的那个回复。 ...

我的是用的tree 不是手风琴那种,不一样的
10#
发表于 2012-10-10 06:52:07 | 只看该作者
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
           //Tree1 OnClientClick = TabStrip1.GetAddTabReference(e.Node.Text, "fa_zclb.aspx", e.Node.Text, IconHelper.GetIconUrl(Icon.Application), true));
            LoadData();
        }
    }
    private void LoadData()
    {
        
        var db = new DBClass();
        //var dt = new DataTable();
        var ds = new DataSet();
        string sql = "select lbdm,lbmc,case when len(rtrim(lbdm))=2 then NULL else left(lbdm,2) end 'ParentID' ";
        sql += "from  FA_Gdlb where gsdm='@gsdm' order by lbdm";
        sql = sql.Replace("@gsdm", RunContext.Dw.gsdm);
        ds = db.ExecQueryRecordSet(sql, "fa_gdlb"); //返回 数据集  
        
        ds.Relations.Add("TreeRelation", ds.Tables[0].Columns["lbdm"], ds.Tables[0].Columns["ParentID"]);//

        foreach (DataRow row in ds.Tables[0].Rows)
        {
            if (row.IsNull("ParentID"))  //DBNull.Value  
            {   //上级代码为空时,表示一级节点
                TreeNode node = new TreeNode();
                node.Text = row["lbdm"].ToString() +" "+ row["lbmc"].ToString();
                node.Expanded = true;//展开节点
                //node.Leaf = false;   //是否是叶子节点
                node.NodeID = row["lbdm"].ToString();
                Tree1.Nodes.Add(node);//增加 父节点

                ResolveSubTree(row, node); //加载 子节点
            }
        }
    }

    private void ResolveSubTree(DataRow dataRow, TreeNode treeNode)
    {
        DataRow[] rows = dataRow.GetChildRows("TreeRelation");//从"关系名"行中读取"子节点"行集
        if (rows.Length > 0)          // 行集不为空
        {
            treeNode.Expanded = true;//展开节点
            foreach (DataRow row in rows)          //从 子节点 行集中读取.
            {
                TreeNode node = new TreeNode();   //创建空节点
                node.NodeID = row["lbdm"].ToString();
                node.Text = row["lbdm"].ToString() + " " + row["lbmc"].ToString();
                node.EnablePostBack = false;       //回发
                node.OnClientClick = TabStrip1.GetAddTabReference(row["lbdm"].ToString(), "fa_zclb.aspx", row["lbmc"].ToString(), IconHelper.GetIconUrl(Icon.Application), true);
                //TN.OnClientClick = TabStrip1.GetAddTabReference(dr["ID"].ToString(), dr["URL"].ToString() ,  dr["NAME"].ToString(), true);
                //node.Leaf = true;
                treeNode.Nodes.Add(node);        //添加 二级 节点

                //ResolveSubTree(row, node);    // 读取 下级 节点
            }
        }
    }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-9-23 17:55 , Processed in 0.045893 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表