问题描述
EXTJS 左边是树菜单,点击节点的时候,在右边的Grid显示相应的数据,就是根据节点ID刷新数据,这样的事件怎写呢?
解决方案
//tree itemclick 获取id 这个id可以以逗号的方式存放例如:格式:节点1,节点对应的类型id,在获取的时候只需要获取id 然后截取 节点对应的类型id调用gird 的store 传参数的形式加载storeLeft.load({params:{start:0,limit : 15,type:'demo'}});//其中 type就在在后台需要getparam的参数,而这个值就是tree itemclick选取节点的截取id,tree.on("itemclick",function(view,record,item,index,e){alert("点击的节点ID是:"+record.raw.id+",文字是:"+record.raw.text);});参考连接:http://www.bianceng.cn/webkf/Extjs/201007/18460.htm
解决方案二:
click: function(n) { treeNodeId = n.attributes.id; treeNodeInfo = n.attributes.text; studentInfostore.load({ params: { start: 0, limit: 30 }, callback: function(r, options, success) { if (success == false) { window.location.href = "Login.jsp"; } } }); }左边的树添加一个单击事件,让后再单击事件中让右边的gridpanel的store,我这里是studentInfostore,去加载信息,这时动态改变studentInfostore的参数就行了。studentInfostore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ method: 'post', prettyUrls: false, url: 'getStudentInfo.action' }), remoteSort: true, listeners: { "beforeload": function(store) { store.baseParams = { deptId: treeNodeId, studentsearchKey: Ext.getCmp("specialkey").getValue() } } }在store中监听beforeload,让baseParams动态改变 。就行了。
解决方案三:
简单来说就是在treepanel的click事件中,把数据load到gridPanel中去咯