如果不实现参数传递,那很简单
如果有参数传递,先要在js中传递参数给后台
1
function nodeLoad(node)
2
{
3
Coolite.AjaxMethods.NodeLoad(node.id,
{
4
success: function(result)
{
5
var data = eval("(" + result + ")");
6
node.loadNodes(data);
7
},
8
9
failure: function(errorMsg)
{
10
Ext.Msg.alert('Failure', errorMsg);
11
}
12
});
13
}
14

2



3



4



5

6

7

8

9



10

11

12

13

14

code Behind:
1
[AjaxMethod]
2
public static string NodeLoad(string nodeID)
3
{
4
Coolite.Ext.Web.TreeNodeCollection nodes = new Coolite.Ext.Web.TreeNodeCollection();
5
LoadTreeData nodeData = new LoadTreeData();
6
ArrayList getNodes = nodeData.TreeData(nodeID);
7
for (int i = 0; i < getNodes.Count; i++)
8
{
9
nodeData = (LoadTreeData)getNodes[i];
10
AsyncTreeNode asyncNode = new AsyncTreeNode();
11
asyncNode.Text = nodeData.NodeText;
12
asyncNode.NodeID = nodeData.NodeID.ToString();
13
asyncNode.Leaf = nodeData.IsLeaf;
14
if (nodeData.IsLeaf)
15
{
16
//asyncNode.Href = HttpContext.Current.Request.ApplicationPath + "/" + nodeData.NodeUrl;
17
}
18
asyncNode.SingleClickExpand = true;
19
nodes.Add(asyncNode);
20
}
21
return nodes.ToJson();
22
}

2

3



4

5

6

7

8



9

10

11

12

13

14

15



16

17

18

19

20

21

22

aspx:
在TreePanel的Listener里加上如下代码:
<Listeners>
<BeforeLoad Fn="nodeLoad" />
</Listeners>
<BeforeLoad Fn="nodeLoad" />
</Listeners>