2013-07-01 174 views
1

someButton單擊事件我希望在事件處理程序中獲取所選的行someGridDo something。我怎樣才能做到這一點?我試過使用Ext JS獲取網格的選定行

var index = someGrid.getSelectionModel().getSelection().selectedIndex; 
var index = someGrid.getSelectionModel().getSelection().selected; 

這兩行代碼都返回空對象。

flex: 1, 
       xtype: 'grid', 
       style: 'margin: 10px 5px;', 
       store: 'CL.Store.VendorServiceLimits', 
       itemId: 'vendorServiceLimitsGrid', 
       columns: [ 
        { text: Labels.Vendors.MIN_AMOUNT, dataIndex: 'MinOperationAmount', flex: 1 }, 
        { text: Labels.Vendors.MAX_AMOUNT, dataIndex: 'MaxOperationAmount', flex: 1 }, 
        { text: Labels.Vendors.MAX_TRANS_PER_DAY, dataIndex: 'MaxOperationsPerDay', flex: 1 }, 
        { text: Labels.Vendors.OPERATION_TYPE, dataIndex: 'OperationType', flex: 1 }, 
        { text: Labels.Vendors.PERIOD, dataIndex: 'Period', flex: 1 }, 
        { dataIndex: 'Id', hidden: true } 
       ], 
+0

請提供網格代碼。 –

+0

你的意思是那個? – Dimitri

+0

正如我看到你動態創建它。所以你需要像這樣創建:

回答

2

是是你在找什麼:

listeners:{ 
click:function(){ 
     var grid = Ext.getCmp('grid'); 
     var selection= grid.getSelectionModel(); 
     items=[]; 
     for(i=0;i < grid.store.getCount();i++){ 
      if(selection.isSelected(i)){ 
      items.push({ 
       "MinOperationAmount" : grid.store.getAt(i).data.MinOperationAmount, 
       "MaxOperationAmount" : grid.store.getAt(i).data.MaxOperationAmount 
      }); 
     } 
    } 
} 
} 

在項目數組,你會得到處理所有選擇records.Here我已經推只有兩列data.You可以添加其他欄目了。

+0

這會工作,但它太昂貴了。我的意思是我想得到一個數字,它將指示所選網格的行。網格有一個名爲cellclick的事件,它接收名爲rowIndex的參數。這就是我正在尋找的!但我不想使用grids cellclick事件來處理我想要做的事情。我想使用按鈕單擊事件 – Dimitri

0

爲了使用getSelectionModel您必須SelectionModel 所以,你必須添加上面。

<SelectionModel> 
      <ext:RowSelectionModel ID="RowSelectionModel1" runat="server" /> 
    </SelectionModel> 

以上工作適用於RowSelection。還有其他例子,如果你想使用複選框。 上面的xml取自ext.net。