Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting shieldUI网格过滤器/网格刷新时的排序持久性_Sorting_Filter_Grid_Selection_Shieldui - Fatal编程技术网

Sorting shieldUI网格过滤器/网格刷新时的排序持久性

Sorting shieldUI网格过滤器/网格刷新时的排序持久性,sorting,filter,grid,selection,shieldui,Sorting,Filter,Grid,Selection,Shieldui,是否可以以某种智能优化的方式在grid.refresh()上持久化网格排序/筛选/选择?我需要在窗口调整事件中刷新网格以调整到新的窗口大小。我猜刷新会在内部破坏并重新创建网格,而不会考虑可能的活动排序/筛选/选择。因为网格可以包含大量数据(虚拟滚动),所以我希望避免不必要的数据库查询、渲染和排序。我想我正在寻找一种可以刷新现有数据的刷新方法。我在refresh method it self中找到了解决方案。它接受options对象,在这些对象中可以提供当前数据源选项来持久化。持久化排序和/或筛选

是否可以以某种智能优化的方式在grid.refresh()上持久化网格排序/筛选/选择?我需要在窗口调整事件中刷新网格以调整到新的窗口大小。我猜刷新会在内部破坏并重新创建网格,而不会考虑可能的活动排序/筛选/选择。因为网格可以包含大量数据(虚拟滚动),所以我希望避免不必要的数据库查询、渲染和排序。我想我正在寻找一种可以刷新现有数据的刷新方法。

我在refresh method it self中找到了解决方案。它接受options对象,在这些对象中可以提供当前数据源选项来持久化。持久化排序和/或筛选的示例:

var options = {
    dataSource: $("#grid").swidget().dataSource
}
$("#grid").swidget().refresh(options);
如果我错了,请让我纠正。对于选择,我想可以检索选定的索引,并在调用refresh后重新选择


编辑:保留筛选和排序,但筛选行重置(丢失所有活动输入值)。这可能是一只虫子吗?如何将值保留在筛选器行中?

就像他们刚刚实现的一样-下面是示例

可能会包含在下一版本中

下面是示例中执行此操作的代码:

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" }
        ]
    });
});

请使用该示例发布您的答案。