ExtJs在grid中选中一行数据,显示在下面的form中
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ExtJs在grid中选中一行数据,显示在下面的form中
需求:页面分为两个部分,第一部分为grid显示数据,第二部分为formPanel显示数据,过程如下,调用过程1,将数据显示在grid 中,选中grid中的一条数据,得到这条数据的一个cashcode,然后再将cashcode作为参数,调用过程2到数据库中查询数据,这时将查询到的数据放到一个store中,同时调用一个回调函数将这条数据插入到formPanel中。
整个事件的处理过程都是在选中grid中的一条数据时执行的。
所以在grid中的CheckboxSelectionModel中执行主要代码如下:
-------------------------------------------------------------------------------------
this.themeCheckbox = new Ext.grid.CheckboxSelectionModel( {
singleSelect : true,
checkOnly : false,
listeners : {
rowselect : function(obj, rowIndex, record) {//选中某一行执行以下操作
var record = Ext.getCmp(_this.genId("main")).getSelectionModel().getSelecte d();//获取被选中的这一行
if (record) {
if(record.get("cashcode") == null || record.get("cashcode") == ""){
return;
}
//这里的formStore是一个获取数据的store,在这里加载时传递从
grid中获取的参数cashcode传递到后台
formStore.load({
params : {
cashcode:record.get("cashcode"),
start : 0,
limit : gLimit
},
//重要的是这里,一个回调函数,调到数据加载到formPanel中,注意向formPanel中只能加载一条数据
callback : function(r , options ,success){
if (r) {
//选中行后加载formStore赋值给formpanel
_formPanel.form.loadRecord(r[0]);//r[0]获取一条数据
}
/*for (var i = 0; i < conrulesStoreF.getCount(); i++) {
var record = conrulesStoreF.getAt(i);
alert(record.get('cashcode'));
}*/
//Ext.getCmp(conrulesStoreF.getById('cashcode')).setValue(r ecord.get("cashcode"));
}
});
}
}
}
});。