剑道网格在我转到另一个页面后保持过滤状态

Kendo Grid Keep Filter State After I Go To Another Page

本文关键字:状态 过滤 另一个 网格      更新时间:2023-09-26

我在尝试保留选定的过滤元素时遇到问题。我有下面的场景,我用一些东西过滤,然后我点击一行,它会把我带到一个新的页面进行编辑,当我返回时,过滤器会消失(不应该)。请帮我处理这个

注意:我使用的不是mvc网格,只是一个简单的javascript一个

您可以使用localStorage(如果您希望过滤器在浏览器/选项卡关闭时过期,甚至可以使用sessionStorage)。DataSource有一个名为change的事件,每次执行更改(包括筛选)时都会调用该事件。在这个事件中,你可以获得Kendo的过滤器对象(具有特定的结构)并将其保存到存储器中。在网格初始化参数上,您可以设置dataSource的filter属性,该属性需要上面提到的过滤器对象,并且网格将在初始化时自动过滤。检查以下代码:

  1. 在网格初始化之前获取过滤器:

    var filters = localStorage.getItem("gridFilters");
    if (filters)
    {
        filters = JSON.parse(filters);
    }
    
  2. 然后将这些属性设置为您的数据来源:

    change: function(e) 
    {
        // This saves the filter object to the storage
        localStorage.setItem("gridFilters", JSON.stringify(e.sender._filter));
    },
    filter: filters
    

演示

请注意,您没有提供网格规范,所以我猜您在服务器端没有进行过滤。如果你这样做,上面的代码将不起作用,你必须尝试另一种方法。我希望它能有所帮助。