1. 程式人生 > >Extjs gridPanel對選中行的操作

Extjs gridPanel對選中行的操作

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();就可以了