如何保存 SlickGrid 列顺序 (js)
how to save a SlickGrid column order (js)?
我的应用程序中有两个网格。
var columns1 = [
{
name: "Address",
field: "address"
id: "address",
sortable: true
}
]
var columns2 = [
{
{
name: "Rating, in %",
field: "rating"
id: "rating_percent",
resizable: false
}
]
它们彼此绝对独立。另外,我在另一个js
文件中有一些网格事件描述。
grid.onColumnsReordered.subscribe(function (e, args) {
_this.updateHeaderRow();
// here
});
当用户更改列顺序时,我想保存此顺序。我应该更改(覆盖)DOM元素吗,我的意思是column1
和column2
?那么问题:如何保存列顺序?
njr101 的答案(使用 store.js)很棒,但请注意:store.js 不能存储函数(即用于编辑器、格式化程序),因此一旦你存储 .get() 列,你需要使用原始的 "columns" 数组重新添加函数:
if (store.get('gridColumns')) {
grid.setColumns(store.get('gridColumns')); // Restore settings if available
grid.getColumns().forEach(function(ch) { // Re-create editor and formatter functions
var result = $.grep(columns, function(e){ return e.id == ch.id; });
if (result[0]) {
ch.editor = result[0].editor;
ch.formatter = result[0].formatter;
}
});
}
我以前做过这个,我发现最简单的方法是将列存储在本地存储中。我使用商店.js库,这使得这非常简单。
grid.onColumnsReordered.subscribe(function (e, args) {
store.set('gridColumns', grid.getColumns());
});
当您想要恢复列时(例如,当用户返回页面时),您只需调用:
grid.setColumns(store.get('gridColumns'));
相关文章:
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 使用JS按顺序显示图像,而不是随机显示
- js”;在“;不按特定顺序追加键/值
- Node.js:多个然后'It’执行顺序不正确
- 如何使d3.js树布局按字母顺序对节点进行排序
- 如何在角度js的自动完成下拉列表中对项目列表(按字母顺序)进行排序
- 按顺序异步加载JS脚本(等待上一个脚本完成)
- 使用Require.js按照依赖关系的顺序加载JavaScript
- 使函数按顺序运行[Node JS]
- 如何根据 js 中每个单词的第 n 个字母按字母顺序排列列表
- 使用 KNOCKOUT.js 在禁用元素的 HTML 中保持 Tab 键顺序
- Node.JS中的模式顺序是否重要
- 如何通过grunt contrib uglify按顺序缩小js文件
- JS中jQuery函数的过程顺序
- 通过普通JS更改元素的索引(顺序)
- Knockout.JS加载顺序问题
- 函数的 JS 顺序调用失败
- 使用键/值选择角度 JS 顺序
- 在Knockoutjs中使用引用过滤器的CloudKit JS顺序查询
- MySQL, Node.js顺序操作-我如何做到这一点