Ext.Net 学习 之 GridPanel、 Store 取值
功能要求,根据GridPanel下数据源,单击“明细显示”按钮展示选择的行详情,另起一个Panel
效果如下:
弹出新的Panel值
前台js
//卡片显示按钮
function showCard() {
var item = hidItem.getValue().split('|');//详细页主键及主键值
var mouldId = hidModel.getValue(); //模块ID
var sqlNo = hidSqlNo.getValue(); //SQLNo
var varRecord = Ext.getCmp('gp' + sqlNo).getSelectionModel().getSelected();
var rowIndex = ('store' + sqlNo).indexOf(varRecord); //获取选中了那一行
if (rowIndex < 0) {
rowIndex = 0;
}
var strUrl = "../CommonWindow/CardDisplayWindow.aspx?item=" + item[0] + "|" + item[1] + "&MouldID=" + mouldId + "&SQLNo=" + sqlNo + "&RowIndex=" + rowIndex + "";
var cardName = Ext.getCmp('hdCardValue' + sqlNo).getValue(); //获取当前激活的Panel名称
addChildTab('idCard', '' + strUrl + '', '' + cardName + '');
}
注意红色地方 取值
有什么问题?
--是的 取值方式不一样
上面代码是可以取值的
不明白的问题出现了:
根据GridPanel的ID值找到,选中了那一行
根据控件ID
Ext.getCmp('gp' + sqlNo).getSelectionModel().getSelected();//GridPanel
为什么GridPanel数据源 Stroe :
var rowIndex =Ext.getCmp('store' + sqlNo).indexOf(varRecord); //获取选中了那一行
js便报错
相反去掉“Ext.getCtl” 则OK
不明白 ext获取控件是什么原理?
2011-12-17
问题搞不定 总觉得不舒服 今早 搞定
换个思路即可 获取GridPanel下选中的行
var rowIndex = Ext.getCmp('gp' + sqlNo).store.indexOf(varRecord); //获取选中了那一行
注:'gp' + sqlNo 当前GridPanel ID、varRecord 见上
这个可以解决问题
作者:PEPE
出处:http://pepe.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
作者:PEPE
出处:http://pepe.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。