Preli
Preli

Reputation: 3041

get data of selected rows in slickgrid

I have a slickgrid in which some rows are hidden by a filter (DataView).

When I now call the getSelectedRows method of the grid I get the indices of the visibly selected rows. But I need the actual data of the selected rows.

Upvotes: 7

Views: 29099

Answers (5)

Emma Gasca
Emma Gasca

Reputation: 21

hObjMarcado  = ( grid.getSelectedRows());
for( var a_id in hObjMarcado ) {
    vres.push( dataview.getItem( hObjMarcado[a_id] ));
    //la opcion getItem obtiene el elemento especifico,
    //aun con filtro.
}
return vres;

Upvotes: 2

Wolf
Wolf

Reputation: 6499

If you access grid from other control like . click button

var selectRow = gridInstance.getSelectedRows();
alert(gridInstance.getDataItem(selectRow).columnName)

Upvotes: 0

eliprodigy
eliprodigy

Reputation: 598

You have a mistake. It needs to be "getDataItem" and not "getData".

var selectedData = [],enter code here`selectedIndexes;

selectedIndexes = _grid.getSelectedRows();
jQuery.each(selectedIndexes, function (index, value) {
    selectedData.push(_grid.getDataItem(value));
});

Upvotes: 4

Axle
Axle

Reputation: 1878

You can also use this line in the .each loop to pull the data from the dataView instead of using getData() from the grid object, since that seems to be inconsistent depending on the fork:

var selectedData = [],
    selectedIndexes;

selectedIndexes = _grid.getSelectedRows();
jQuery.each(selectedIndexes, function (index, value) {
    selectedData.push(_dataView.getItemById(value));
});

Upvotes: 1

matma
matma

Reputation: 1094

You must do something like this:

var selectedData = [],
    selectedIndexes;

selectedIndexes = _grid.getSelectedRows();
jQuery.each(selectedIndexes, function (index, value) {
  selectedData.push(_grid.getData()[value]);
});

Right now the selectedData variable contains data for selected rows.

Upvotes: 21

Related Questions