ext:TreePanel 动态添加和单击事件

        <ext:TreePanel 
            ID="UserTreePanel" 
            runat="server" 
            Title="用户结构图" 
            AutoHeight="true" 
            Border="false"> 
            <Listeners>
                <BeforeLoad Fn="nodeLoad" />
                <Click Handler="clickTree1(node);" />
            </Listeners>
            
        </ext:TreePanel>  

 

<ext:XScript ID="XScript1" runat="server">
    <script>
        var nodeLoad =  function(node) {
             #{DirectMethods}.NodeLoad(node.id, {
                success: function (result) {
                    var data = eval("(" + result + ")");
                    node.loadNodes(data);
                },

                failure: function (errorMsg) {
                    Ext.Msg.alert('Failure', errorMsg);
                }
            });
        }
        var clickTree1 = function (node) {  
            #{DirectMethods}.ClickTree(node.id);
         }

    </script>
</ext:XScript>

 

 [DirectMethod]
        public string NodeLoad(string nodeID)
        {
            Ext.Net.TreeNodeCollection nodes = new Ext.Net.TreeNodeCollection();
             
            if (!string.IsNullOrEmpty(nodeID))
            {
                List<sp_GetUserByReferee_Result> list = _edm.sp_GetUserByReferee(nodeID).ToList();

                foreach (var item in list)
                {
                    AsyncTreeNode asyncNode = new AsyncTreeNode();
                    asyncNode.Text = item.User_DisplayName;
                    asyncNode.NodeID = item.User_Name;
                    asyncNode.Icon = Icon.User;
                    nodes.Add(asyncNode);

                } 
            }

            return nodes.ToJson();
        }

        [DirectMethod]
        public void ClickTree(string nodeID)
        { 
            if (!string.IsNullOrEmpty(nodeID))
            {
                XF_User user = _edm.XF_User.First(c => c.User_Name == nodeID);
                ucEdit.LoadData(user.Id);
                ucEdit.Show(); 
            } 
        }

 

转载于:https://www.cnblogs.com/spencerai/p/3753854.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ExtJS 的 TreePanel 控件可以监听以下事件: 1. `beforeitemappend`:在节点被添加TreePanel 前触发。 2. `beforeitemcollapse`:在节点被折叠前触发。 3. `beforeitemexpand`:在节点被展开前触发。 4. `beforeiteminsert`:在节点被插入到 TreePanel 前触发。 5. `beforeitemmove`:在节点被移动前触发。 6. `beforeitemremove`:在节点被移除前触发。 7. `beforeload`:在加载节点数据前触发。 8. `checkchange`:当节点的复选框状态改变时触发。 9. `itemappend`:在节点被添加TreePanel 后触发。 10. `itemclick`:当节点被点击时触发。 11. `itemcollapse`:在节点被折叠后触发。 12. `itemcontextmenu`:当节点右键菜单被触发时触发。 13. `itemdblclick`:当节点被双击时触发。 14. `itemexpand`:在节点被展开后触发。 15. `iteminsert`:在节点被插入到 TreePanel 后触发。 16. `itemkeydown`:当节点键盘按下时触发。 17. `itemkeypress`:当节点键盘按键按下时触发。 18. `itemkeyup`:当节点键盘按键释放时触发。 19. `itemmousedown`:当鼠标在节点上按下时触发。 20. `itemmouseenter`:当鼠标进入节点时触发。 21. `itemmouseleave`:当鼠标离开节点时触发。 22. `itemmouseup`:当鼠标在节点上释放时触发。 23. `itemremove`:在节点被移除后触发。 24. `load`:在节点数据加载完成后触发。 25. `selectionchange`:当选择的节点发生变化时触发。 这些是常用的 TreePanel 事件,你可以根据需要选择监听相应的事件来实现对应的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值