Extjs gridPanel對選中行的操作
阿新 • • 發佈:2019-01-27
1.extjs gridpanel 操作行 得到選中行的列
01 var model = grid.getSelectionModel();
02 model.selectAll();//選擇所有行
03 model.selectFirstRow();//選擇第一行
04 model.selectLastRow([flag]);//選擇最後一行,flag為正的話保持當前已經選中的行數,不填則預設false
05 model.selectNext();//選擇下一行
06 model.selectPrevious();//選擇上一行
07 model.selectRange(tartRow,ndRow, [Boolean keepExisting] );//選擇範圍間的行
08 model.selectRow(row);//選擇某一行
09 model.selectRows(rows);//選擇指定一些行,傳遞陣列如[1,3,5],則分別選擇1,3,5行
10 model.clearSelections();//清空所有選擇
11 model.deselectRange( startRow, endRow );//取消從startrow到endrow的記錄的選擇狀態
12 model.deselectRow(row);//取消指定行的記錄
13
14 grid.getSelected().id //得到選中的行的標識
15
16 var getSelect=function (grid, col) { //獲取選中grid的列
17 var st="";
18 for (var i = 0; i < grid.getSelectionModel().getSelections().length; i++) {
19 st+=grid.getSelectionModel().getSelections()[i].get("'"+col+"'")+",";
20 }
21 }
2.Ext4.1 grid 多選(可無checkbox)
在Ext4.1中的grid預設只能實現單選的。
如果你想要你的grid有多選功能,需要給grid增加selModel
如果你使用了Ext.create(‘Ext.selection.CheckboxModel’)–>selModel:Ext.create(‘Ext.selection.CheckboxModel’,{mode:”SIMPLE”})
部分程式碼:
1 this.grid= new Ext.grid.GridPanel({
2 title : 'users',
3 store : this.userStore,
4 columns : [ {
5 header : "使用者ID",
6 sortable : true,
7 dataIndex : 'userId'
8 }, {
9 header : "使用者名稱稱",
10 sortable : true,
11 dataIndex : 'userName'
12 } ],
13 stripeRows : true,
14 manageHeight:true,
15 height:this.height-114,
16 selModel:Ext.create('Ext.selection.CheckboxModel',{mode:"SIMPLE"}),
介面效果:
但是這種方式會出現複選框,
如果不想有複選框是需要把selModel換成Ext.create(‘Ext.selection.RowModel’,{mode:”SIMPLE”})就ok了
如圖:
獲得選中的資料用var records = this.grid.getSelectionModel().getSelection();就可以了