Ext.grid.Panel получить выбранную запись от кнопки tbar - PullRequest
1 голос
/ 06 декабря 2011

Я создал вид расширения Ext.grid.Panel, а также прикрепил к нему tbar, на панели инструментов у меня есть 2 кнопки [Добавить] и [Удалить]. В этом вопросе я сосредоточен только на команде [Удалить].

Как обычно, я хочу получить текущую выбранную запись в сетке, которую я хочу удалить.

так в контроллере:

init: function() {
 this.control({
   'extendgridlist button[action=remove]': {
      click: this.removeCurrentRow;
    }
 });
}

removeCurrentRow: function(t){
 // how do i get current selected record
}

Ответы [ 4 ]

5 голосов
/ 06 декабря 2011
removeCurrentRow: function(t){
 var grid = t.up('gridpanel');
 var arraySelected =grid.getSelectionModel().getSelection();
 //assuming you have a single select, you have the record at index 0;
 var record = arraySelected[0]
}
1 голос
/ 30 марта 2012

Если сетка равна selType = "cellModel", используйте код ниже:

var grid = Ext.getCmp('id-of-grid');
var recid = grid.getSelectionModel().getCurrentPosition();

if(recid && recid.row){
  var r = grid.getStore().getAt(recid.row)   
  alert(r.data.anyofgridfieldid)
}

подробнее: http://as400samplecode.blogspot.com/2012/01/extjs-grid-selected-row-cell.html

1 голос
/ 06 декабря 2011

Ответ 'nscrob' должен работать просто отлично, я просто хотел указать альтернативный метод.Каждый компонент Ext может иметь поле 'id'.Итак, если вы дали вашей сетке опцию конфигурации, подобную следующей, когда она была создана:

id:'my_grid_id'

Тогда из любого места, в том числе и внутри функции removeCurrentRow, вы могли бы сделать следующее:1006 * Как я уже сказал, похоже на другие ответы, но это просто еще один способ доступа к сетке.

0 голосов
/ 03 октября 2014
...
xtype: 'button',
text: 'Edit',
handler: function() {
    onEdit(this.up('theGrid')); // alias: 'widget.theGrid' in definition
}

...
function onEdit(theGrid) {

if (theGrid.getSelectionModel().hasSelection()) {    
        var rows = theGrid.getSelectionModel().getSelection();
        var row = rows[0];
        console.log('Count Rows Selected : ' + rows.length);
        console.log('The Row : ' + row); // columns: 'id', 'name', 'age'
        console.log('Student Id: ' + row.get('id'));
        console.log('Student Name: ' + row.get('name'));
        console.log('Student Age: ' + row.get('age'));
    }
    else {
        console.log('No Row Selected.');
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...