Ext.net TreePanel 动态绑定及刷新

<ext:Button ID="btnNew" runat="server" Icon=Add Text="Refresh">
                    <Listeners>
                        <Click Handler=";Search(#{TreePanel1}); />
                    </Listeners>
                </ext:Button>


 public Ext.Net.TreeNodeCollection TreeFunction()
    {
        try
        {

            BLLEvent Menu = new BLLEvent();
            DataTable dt = Menu.Dt_ClientArea();

            TreePanel1.Root.Clear();
           
            Ext.Net.TreeNode Root = new Ext.Net.TreeNode("TreeRoot");

            TreePanel1.Root.Add(Root);
            TreePanel1.RootVisible = false;
            TreePanel1.Border = false;

            DataRow[] menus = dt.Select("", "");
            foreach (DataRow SubTree in menus)
            {
                Ext.Net.TreeNode SubNode = new Ext.Net.TreeNode();

                SubNode.Text = SubTree["AreaName"].ToString();
                SubNode.NodeID = SubTree["AreaID"].ToString();
                SubNode.Icon = (Icon)Enum.Parse(typeof(Icon), "World");
                Root.Nodes.Add(SubNode);
                DataTable dtSystem = Menu.Dt_ClientDeptByAreaID(Int32.Parse(SubTree["AreaID"].ToString()));
                DataRow[] submenus = dtSystem.Select("", "");
                SubNode.Listeners.Click.Handler = "Ext.net.DirectMethods.TreeClick('" + SubNode.NodeID + "')";

                foreach (DataRow Leaf in submenus)
                {
                    Ext.Net.TreeNode LeafNode = new Ext.Net.TreeNode();
                    LeafNode.Text = Leaf["SysDept"].ToString();
                    LeafNode.NodeID = SubTree["AreaID"].ToString() + "," + Leaf["DeptID"].ToString(); // 叶节点ID以 AreaID + DeptID 组成,方便点击调用取值
                    LeafNode.Icon = (Icon)Enum.Parse(typeof(Icon), "Server");
                    SubNode.Nodes.Add(LeafNode);
                    LeafNode.Listeners.Click.Handler = "Ext.net.DirectMethods.TreeClick('" + LeafNode.NodeID + "');#{wdDeptAdd}.hide();#{wdDeptNew}.hide();#{wdEngineer}.hide();#{FpDeptNew}.reset();#{FpDeptNew}.reset();";
                    
                }
            }
            
        }
        catch (Exception ex)
        {
            X.Msg.Alert(Resources.Global.SystemAlert, ex.ToString()).Show();
        }
        return TreePanel1.Root;

    }


[DirectMethod]
    public string Query()
    {
        Ext.Net.TreeNodeCollection nodes = this.TreeFunction();
        return nodes.ToJson();
    }


<script type="text/javascript">
       
    function Search(tree) {
            Ext.net.DirectMethods.Query({
                 success : function (result) {
                    var nodes = eval(result);
                    if(nodes.length > 0){
                        tree.initChildren(nodes);
                    }
                    else{
                        tree.getRootNode().removeChildren();
                    }
                }
            });
        }
    </script>




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值