2013-07-01 4 views
1

On someButton событие click Я хочу получить выбранную строку someGrid и Do 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

Это будет работать, но это слишком дорого. Я имею в виду, что хочу получить только число, которое будет указывать на выбранную строку сетки. grid имеет событие, называемое cellclick, которое получает параметр rowIndex. вот что я ищу! Но я не хочу использовать событие gridclick grid для обработки вещи, которую я хочу сделать. Вместо этого я хочу использовать кнопку click click – Dimitri

0

Для того, чтобы с помощью getSelectionModel вы должны SelectionModel Таким образом, вы должны добавить выше.

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

Вышеуказанное работает для RowSelection. Есть другие примеры, если вы хотите использовать флажок. Вышеупомянутый xml взят из ext.net.

Смежные вопросы