shieldUI 网格过滤器/网格刷新时的排序持久性
shieldUI grid filter / sort persistence on grid refresh
是否有可能以某种智能优化方式在 grid.refresh() 上保留网格 sort/filter/selection?我需要在 window resize 事件上刷新网格以调整到新的 window 大小。我想刷新会在内部破坏并重新创建网格,而不是考虑可能的活动 sort/filter/selection。因为网格可以包含大量数据(虚拟滚动),所以我想避免不必要的数据库查询、渲染和排序。我想我正在寻找将刷新现有数据的刷新。
我自己在刷新方法中找到了解决方案。它接受选项对象,其中可以提供当前数据源选项来持久化。持久排序 and/or 过滤器的示例:
var options = {
dataSource: $("#grid").swidget().dataSource
}
$("#grid").swidget().refresh(options);
如果我在这里错了,请支持我纠正。对于选择,我想可以检索选定的索引并在调用刷新后重新选择。
编辑:保留筛选和排序,但筛选行重置(丢失所有活动输入值)。这可能是一个错误吗?如何将值保留在筛选行中?
接缝就像他们刚刚实现的一样 - 这是 example。
可能会包含在下一个版本中。
示例中的代码如下:
jQuery(function ($) {
$("#grid").shieldGrid({
dataSource: {
data: gridData,
schema: {
fields: {
id: { type: Number },
name: { type: String },
company: { type: String },
phone: { type: String },
age: { type: Number },
gender: { type: String }
}
},
filter: {
// create the initial filter in that form
and: [
{ path: "name", filter: "con", value: "John" }
]
}
},
filtering: {
enabled: true
},
paging: true,
columns: [
{ field: "id", width: "250px", title: "ID" },
{ field: "name", title: "Person Name", width: "250px" },
{ field: "company", title: "Company" },
{ field: "phone", title: "Phone", width: "250px" },
{ field: "age", title: "Age" }
]
});
});
是否有可能以某种智能优化方式在 grid.refresh() 上保留网格 sort/filter/selection?我需要在 window resize 事件上刷新网格以调整到新的 window 大小。我想刷新会在内部破坏并重新创建网格,而不是考虑可能的活动 sort/filter/selection。因为网格可以包含大量数据(虚拟滚动),所以我想避免不必要的数据库查询、渲染和排序。我想我正在寻找将刷新现有数据的刷新。
我自己在刷新方法中找到了解决方案。它接受选项对象,其中可以提供当前数据源选项来持久化。持久排序 and/or 过滤器的示例:
var options = {
dataSource: $("#grid").swidget().dataSource
}
$("#grid").swidget().refresh(options);
如果我在这里错了,请支持我纠正。对于选择,我想可以检索选定的索引并在调用刷新后重新选择。
编辑:保留筛选和排序,但筛选行重置(丢失所有活动输入值)。这可能是一个错误吗?如何将值保留在筛选行中?
接缝就像他们刚刚实现的一样 - 这是 example。
可能会包含在下一个版本中。
示例中的代码如下:
jQuery(function ($) {
$("#grid").shieldGrid({
dataSource: {
data: gridData,
schema: {
fields: {
id: { type: Number },
name: { type: String },
company: { type: String },
phone: { type: String },
age: { type: Number },
gender: { type: String }
}
},
filter: {
// create the initial filter in that form
and: [
{ path: "name", filter: "con", value: "John" }
]
}
},
filtering: {
enabled: true
},
paging: true,
columns: [
{ field: "id", width: "250px", title: "ID" },
{ field: "name", title: "Person Name", width: "250px" },
{ field: "company", title: "Company" },
{ field: "phone", title: "Phone", width: "250px" },
{ field: "age", title: "Age" }
]
});
});