I have detail grids for each row and when you make a change to the detail grid, it marks the parent grid as dirty. I then have a custom filter that looks for dirty rows and lets you toggle between showing modified rows or showing all rows. Works great except when I apply the filter, it tosses all the changes made to the detail grids. What can I do to keep those changes?
function toggleModifiedRows() {
var grid = $("#grid").data("kendoGrid");
var Filters = [];
var buttonRows = document.getElementById('showModifiedRows');
var buttonText = buttonRows.value;
if (grid.dataSource.filter() != null) {
Filters = grid.dataSource.filter().filters;
}
var FilterData = [];
console.log(buttonText);
if (buttonText == "Show Modified Rows") {
buttonRows.value = "Show All Rows";
var dirtyFilter = false;
if (Filters.length > 0) {
for (var i = 0; i < Filters.length; i++) {
if (Filters[i].field == "dirty") { dirtyFilter = true; }
}
}
if (!dirtyFilter) { FilterData = UpdateFilters(Filters, 'dirty', 'equals', true); }
}
else {
buttonRows.value = "Show Modified Rows";
if (Filters.length > 0) {
for (var i = 0; i < Filters.length; i++) {
if (Filters[i].field == "dirty") {
Filters.splice(i, 1);
break;
}
}
}
FilterData = Filters;
}
grid.dataSource.filter(FilterData);
};