如何取出 Grid 中被选中的值
JS堂-JavaScript开源社区-'s Archiver
JS堂-JavaScript开源社区- ? Ext UI ? Ext JS Grid 专区 ? 请问如何取出 Grid 中被选中的值
kangkangxiong 发表于 2007-8-23 01:07
请问如何取出 Grid 中被选中的值
请问如何取出 Grid 中被选中的值,是不是和 dataSource 有关啊?
zym16621 发表于 2007-8-23 09:32
可以使用getSelectionModel()得到Grid的RowSelectionModel;
然后监听RowSelectionModel的rowselect事件,该事件第三个参数是该行对应的Ext.data.Record对象,根据Record对象可以取得该行的数据。
gavin213 发表于 2007-8-23 15:56
回复 #2 zym16621 的帖子
那么怎么在grid 中每行记录前都显示一个checkbox,就是多一checkbox列,由checkbox的选取来取得想要的记录值呢?
dearplato 发表于 2007-8-23 22:22
var objRecord = Ext.data.Record.create([{name: 'TablePrimaryKey', type: 'string'}]); var objDS = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url: strUrl}), reader : new Ext.data.XmlReader({record : 'root',success: '@success'}, objRecord) }); var objCM = new Ext.grid.ColumnModel([{header: 'Action', dataIndex: 'TablePrimaryKey', width: 60, locked: true, renderer: formatBoolean, hidden:false, align: 'center'}]); var objGrid=new Ext.grid.Grid('objHtmlElementId',{ds:objDS,cm:objCM,.........}); function formatBoolean(value, cellmeta, record, RowIndex, ColumnIndex, store){ var strTemp = ''; strTemp += '<input id="checkbox_'+ record.id + '" type="checkbox" style="padding:0px;margin:0px;height:13px;" ' + (objGrid.getSelectionModel().isSelected(RowIndex) ? 'checked="true"' : 'checked="false"') + '>'; return strTemp; }; objDS.load({params:{start:0, limit:intPageSize}}); function formatBoolean(value, cellmeta, record, RowIndex, ColumnIndex, store){ var strTemp = ''; strTemp += '<input id="checkbox_'+ record.id + '" type="checkbox" style="padding:0px;margin:0px;height:13px;" ' + (objGrid.getSelectionModel().isSelected(RowIndex) ? 'checked="true"' : 'checked="false"') + '>'; return strTemp; }; objGrid.on({ //雙擊 在dialog開啟資料 rowdblclick : function(grid, rowIndex,e){ openDialog('Select',rowIndex); }, //單擊每一列最前面的checkbox,則選取資料,再單擊則反選取。單擊grid的其他地方都不會有動作。 rowclick : function(grid, rowIndex,e){ var tmpRecord = objDS.getAt(rowIndex); var chk = Ext.get('checkbox_'+tmpRecord.id).dom; if(chk.checked){ objGrid.getSelectionModel().selectRow(rowIndex, true); } else{ objGrid.getSelectionModel().deselectRow(rowIndex); } } });Ext.grid.RowSelectionModel.prototype.hotkey = false;Ext.grid.RowSelectionModel.prototype.handleMouseDown = function(e, t){};