FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

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

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

搜索
查看: 4533|回复: 4
打印 上一主题 下一主题

【已解决】树形控延迟加载后无法折叠

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-18 17:05:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
反馈BUG
程序版本: fineUI v4.1.5
浏览器: Chrome IE10 
BUG截图:
BUG地址: -
参照 Demo的例子,写了一个延迟加载。页面如下:

    <form id="form1" runat="server">
    <fageManager ID="ageManager1" runat="server" />
    <f:Tree ID="TreeDepartment" EnableCollapse="true" Width="650px"
        ShowHeader="true" Title="部门列表" AutoLeafIdentification="false" runat="server">
    </f:Tree>
    </form>


后面代码
private log4net.ILog logger = log4net.LogManager.GetLogger(typeof(AddOrUpdate));
        protected IDepartmentManager manager { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {
            InitLoad();
        }

        private void InitLoad()
        {
            var items = manager.LoadSubDepartmentsById(null);
            //var partNode = TreeDepartment.Nodes.FirstOrDefault<TreeNode>();
            foreach (var item in items)
            {
                TreeNode node = new TreeNode();
                node.Text = item.DepartmentName;
                node.NodeID = item.ID.ToString();
                node.Leaf = false;
               // DynamicAppendNode(node);
                TreeDepartment.Nodes.Add(node);

            }



        }


        protected void NodeLazyLoad(object sender, TreeNodeEventArgs e)
        {
            DynamicAppendNode(e.Node);
        }
        private void DynamicAppendNode(TreeNode parentNode)
        {
            parentNode.Expanded = true;
            Department department = manager.Load(new Guid(parentNode.NodeID));
            foreach (var item in department.SubDepartments)
            {
                TreeNode node = new TreeNode();
                node.Text = item.DepartmentName;
                node.NodeID = item.ID.ToString();
                node.Leaf = true;
                parentNode.Nodes.Add(node);

            }

        }

延迟加载之前是:

展开之后:


不能折叠,一直是这个样子。

如果一次性的加载是没问题的。把红字去掉注释。运行结果如下:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2015-1-19 10:15:37 | 只看该作者
你重复加载了。
每次点击先判断是不是已存在子节点?不存在,再加载。存在,直接返回不做任何操作。
板凳
 楼主| 发表于 2015-1-19 10:44:25 | 只看该作者
隨風往事 发表于 2015-1-19 10:15
你重复加载了。
每次点击先判断是不是已存在子节点?不存在,再加载。存在,直接返回不做任何操作。 ...

原来是IsPostBack闹的。。。
其他代码我再改进,我就是试试这个例子。晕了!
protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                InitLoad();
            }
        }
地板
发表于 2015-1-19 11:43:37 | 只看该作者
不是在Page_Load处判断,是在点击事件判断
5#
 楼主| 发表于 2015-1-19 16:14:06 | 只看该作者
隨風往事 发表于 2015-1-19 11:43
不是在Page_Load处判断,是在点击事件判断

我试了,不用判断。我已经确认是IsPostBack的问题了。官方文档里写了。
http://www.cnblogs.com/sanshi/archive/2012/11/21/2780101.html
最后小结之前的
注:第一次展开“驻马店市”之后,就向其中添加了子节点,所以折叠后再次展开此节点就不会触发节点展开事件了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-23 07:18 , Processed in 0.048679 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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