У меня есть два простых требованияНе удается обновить фильтрацию igGrid
a) I need to programmatically change the number of columns displaying in igGrid
b) I need to programmatically update the filters in igGrid
Я нахожусь под впечатлением, что изменить количество столбцов программно в первую очередь необходимо «уничтожить» сетки затем воссоздать его.
Чтобы обновить фильтры вы просто должны это сделать
grid.igGridFiltering("filter", ([{ fieldName: "Column1", expr: true, cond: "true" }]));
Я всегда получаю эту ошибку при вызове моего кода
cannot call methods on igGridUpdating prior to initialization; attempted to call method 'destroy'
Вот фрагмент кода
scope.changeView = function(v) {
var grid = scope.element; //from directive
if (grid.data("igGrid") != null) {
grid.igGrid('destroy');
}
updateGrid(grid, v);
};
function updateGrid(grid, v) {
scope.gridOptions = coreFunctions.gridOptions(); //from service
scope.gridOptions.dataSource = scope.dataSource;
var cols = JSON.parse(v.Json);
cols = cols.fields;
scope.gridOptions.columns = [];
angular.forEach(cols, function(value, index) {
scope.gridOptions.columns.push({ 'headerText': value, 'key': value, width: '200px' });
});
grid.igGrid(scope.gridOptions); //error occurs here!
grid.igGrid('dataBind');
grid.igGridFiltering("filter", ([{ fieldName: "Column1", expr: true, cond: "true" }]));
}