我有一个剑道网格,我在其中选择了一个过滤器,正在重新加载网格,我希望在重新加载网格时使用相同的过滤器。
我正在使用以下代码重新加载网格。它可以工作,但是不会显示选中的过滤器项目。我在过滤器中检查了IDR,然后重新加载了页面,该页面显示已选中1个项目,但未显示IDR。
function ReloadGrid() {
var grid = $('#gridId').data('kendoGrid');
grid.dataSource.read();
grid.setDataSource(grid.dataSource);
}
有两种方法可以实现。
一种方法是将过滤器保存在数据库中,第二种方法是使用注释中提到的本地存储。
我更喜欢第二个,使用本地存储来保存过滤器并在读取时加载它。
@@ GaloisGirl指向正确的方向。
再次检查此示例:Persist state
语言环境存储的基本用法是以某些名称(键,值)保存一些数据:
let person = {
name: 'foo',
lastName: 'bar'
};
let save = function (person) {
let personString = JSON.stringify(person);
localStorage.setItem('person', personString);
console.log('Storing person: ', personString);
};
let load = function () {
let personString = localStorage.getItem('person'); // <----string
let person = JSON.parse(personString); // <----object
console.log('Stored person: ', person);
};
let remove = function (name) {
localStorage.removeItem(name);
console.log('Removed from local storage!');
};
save(person);
load();
remove(person.name);
在剑道世界中,您需要将网格的当前选项状态保存在本地存储中,您可以通过添加按钮来实现这一点,例如在示例中或在更改时即时更改或使用window.onbeforeunload
或在示例中如在重新加载网格之前的示例中。
希望它会有所帮助,gl!