|
let grid: Grid = new Grid({
allowFiltering: true,
selectionSettings: { type: 'Multiple' },
columns: [
{ field: 'OrderID', headerText: 'Order ID', textAlign: 'Right', isPrimaryKey: true, width: 100 },
. . . . . . .
],
actionBegin: (args) => {
if (args.requestType === 'filtering') {
seleteddata = grid.getSelectedRecords().map(columns => columns.OrderID); //selected data
}
},
actionComplete: complete
});
grid.appendTo('#Grid');
function complete(args) {
if (args.requestType === 'filtering') {
filterdata = grid.getCurrentViewRecords().map(columns => columns.OrderID); // filtered data
final = filterdata.filter(element => seleteddata.includes(element));
filterdata.forEach((i, index) =>if (final.indexOf(i) > -1) {
selectRowIndex.push(index);
});
grid.selectRows(selectRowIndex);
}
} |
|
[Index.cshtml]
var seleteddata;
var filterdata;
var final = [];
function complete(args) {
if (args.requestType === 'filtering') {
let selectRowIndex = [];
filterdata = this.getCurrentViewRecords().map(columns => columns.OrderID);
final = filterdata.filter(element => seleteddata.includes(element));
filterdata.forEach((i, index) => {
if (final.indexOf(i) > -1) {
selectRowIndex.push(index);
}
});
this.selectRows(selectRowIndex);
}
}
function begin(args) {
if (args.requestType === 'filtering') {
seleteddata = this.getSelectedRecords().map(columns => columns.OrderID);
}
} |