<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(); } }