coolite TreeNode的实现
如果不实现参数传递,那很简单
如果有参数传递,先要在js中传递参数给后台
1function 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 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
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 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 }
aspx:
在TreePanel的Listener里加上如下代码:
<Listeners>
<BeforeLoad Fn="nodeLoad" />
</Listeners>
<BeforeLoad Fn="nodeLoad" />
</Listeners>