FineUI 官方论坛

标题: [已解决]后台动态生成的树,给树添加了NodeCommand事件运行... [打印本页]

作者: 极寒    时间: 2015-5-14 14:40
标题: [已解决]后台动态生成的树,给树添加了NodeCommand事件运行...
本帖最后由 极寒 于 2015-5-18 13:20 编辑

                Tree innerTree = new Tree();
                innerTree.EnableArrows = true;
                innerTree.ShowBorder = false;
                innerTree.ShowHeader = false;
                innerTree.EnableIcons = false;
                innerTree.AutoScroll = true;
                innerTree.NodeCommand += new EventHandler<TreeCommandEventArgs>(innerTree_NodeCommand);
                accordionPane.Items.Add(innerTree);

                protected void innerTree_NodeCommand(object sender, FineUI.TreeCommandEventArgs e)
               {
                 //
                }

后台动态生成的树,给树添加了NodeCommand事件,运行后没有效果。是Bug还是我代码有问题,是否有其他属性需要设置。(FineUI 4.1.1.1)

作者: 张怡    时间: 2015-5-15 03:38
你树的节点呢?每个需要点击事件节点都要添加  XXXX.EnableClickEvent = true 这个属性
作者: 水殿风暗香满    时间: 2015-5-15 08:53
路过学习










作者: 极寒    时间: 2015-5-15 09:25
本帖最后由 极寒 于 2015-5-15 09:27 编辑
张怡 发表于 2015-5-15 03:38
你树的节点呢?每个需要点击事件节点都要添加  XXXX.EnableClickEvent = true 这个属性 ...


                AccordionPane accordionPane = new AccordionPane();
                accordionPane.Title = privi.URL_NAME;
                accordionPane.Layout = Layout.Fit;
                accordionPane.ShowBorder = false;
                accordionPane.BodyPadding = "2px 0 0 0";
                accordionPane.Collapsed = true;//全部收缩
                accordionMenu.Items.Add(accordionPane);

                Tree innerTree = new Tree();
                innerTree.EnableArrows = true;
                innerTree.ShowBorder = false;
                innerTree.ShowHeader = false;
                innerTree.EnableIcons = false;
                innerTree.AutoScroll = true;
                innerTree.NodeCommand += new EventHandler<TreeCommandEventArgs>(innerTree_NodeCommand);
                accordionPane.Items.Add(innerTree);     

                var sonPrivi = AllRoleurl.Where(x => x.PK_URL_FATHER == privi.PkUrl).OrderBy(x => x.URL_INDEX).ToList();
                foreach (var sonNode in sonPrivi)
                {
                    var gsonPrivi = AllRoleurl.Where(x => x.PK_URL_FATHER == sonNode.PkUrl).OrderBy(x => x.URL_INDEX).ToList();
                    FineUI.TreeNode node = new FineUI.TreeNode();
                    if (gsonPrivi.Count == 0)
                    {
                        node.NavigateUrl = sonNode.URL_PATH;
                    }
                    node.Expanded = true;
                    node.Text = sonNode.URL_NAME;
                    node.EnableClickEvent = true;
                    node.Icon = FineUI.Icon.BulletShape;
                    innerTree.Nodes.Add(node);                 
                    foreach (var gsonNode in gsonPrivi)
                    {
                        FineUI.TreeNode gnode = new FineUI.TreeNode();
                        gnode.Expanded = true;
                        gnode.Text = gsonNode.URL_NAME;
                        gnode.EnableClickEvent = true;
                        gnode.Icon = FineUI.Icon.BulletShape;
                        gnode.NavigateUrl = gsonNode.URL_PATH;
                        node.Nodes.Add(gnode);
                    }
                } //  ResolveTreeNode(innerTree.Nodes);
绑定的所有Node都加了node.EnableClickEvent = true;依然没效果,根本走不到事件里面的断点。
protected void innerTree_NodeCommand(object sender, FineUI.TreeCommandEventArgs e)
        {
           //
        }


作者: 张怡    时间: 2015-5-16 05:30
如果添加了,就没有任何问题了,我把你的代码测试了一下,运行正常!
作者: 隨風往事    时间: 2015-5-16 10:14
好像不是这样添加事件的吧
作者: 极寒    时间: 2015-5-18 13:19
问题解决了。树的绑定代码应该放在 protected void Page_Init(object sender, EventArgs e) 中,之前的代码放在protected void Page_Load(object sender, EventArgs e) 中。应该是页面回发时,绑定的事件不会被创建。




欢迎光临 FineUI 官方论坛 (https://www.fineui.com/bbs/) Powered by Discuz! X3.4