【问题标题】:Kendo UI Grid Filters data not updatingKendo UI Grid Filters 数据未更新
【发布时间】:2017-04-20 18:35:59
【问题描述】:

也许有人可以帮助我解决我遇到的这个问题......

我的剑道用户界面网格

$("#grid").kendoGrid({            
        dataSource: {
            data: self.positions(),
            pageSize: 50
        },
        filterable: true
    });  

其中 self.positions() 是通过 ajax Get 填充的可淘汰可观察数组。

我现在的问题是当我刷新位置可观察数组并将新数据重新绑定到网格时,列过滤器没有正确刷新数据。 我的过滤器仍然显示旧位置数据。

有什么帮助???

剑道 UI DOJO 示例: http://dojo.telerik.com/oVOsi/31

【问题讨论】:

    标签: kendo-ui kendo-grid


    【解决方案1】:

    我发现这个解决方案效果很好:

        var grid = $("#grid").data("kendoGrid"); 
        grid.setDataSource(grid.dataSource);
        grid.dataSource.read();
    

    诀窍是使用“setDataSource()”方法,它将重置所有过滤器。

    http://dojo.telerik.com/oVOsi/103

    【讨论】:

    • 这是适合我的解决方案。非常感谢:)
    • 感谢您的解决方案。它对我有用。
    【解决方案2】:

    在网格数据源上调用query 并清除过滤器/重置数据源上的任何其他属性对我有用(额外检查以确保过滤器存在)。比如:

    var grid = $("#grid").data("kendoGrid");
    var gridDataSource = grid.dataSource;
    var filter = gridDataSource.filter();
    if (filter) {
        gridDataSource.query({ filter: {}, pageSize: 10, page: 1 });
    }
    

    编辑 现在我了解了确切的要求,您可以在每次单击按钮时重建网格(因此根据数据重建列过滤器)。我整理了一个道场示例:

    Dojo example of rebuilding grid

    【讨论】:

    • 对不起,但对我不起作用。你能发给我一个过滤器绑定正确数据的道场吗? Tks
    • @ezanker 和我发送的示例将在单击myOtherBtn 时成功清除应用于grid 的过滤器。但是,您正在寻找的(我认为)是使用应用于包含新网格数据的列的新过滤器来重建网格列?在这种情况下,您可能需要重建网格本身,以便过滤器包含相关数据。
    • 我已经更新了我的答案并为你提供了一个道场示例
    • 没问题@RicardoCoelho
    • 非常感谢。在应用自定义过滤器或在此处重置过滤器时,我没有使用页面大小和页面,这会产生巨大的性能和其他问题。它为我节省了大量时间。
    【解决方案3】:

    尝试清除数据源对象上的过滤器:

    $('#myOtherBtn').click(function(){
      var grid = $("#grid").getKendoGrid();    
      grid.dataSource.data(products2); 
      grid.dataSource.filter({});
      grid.refresh();
      grid.sync();
    });
    

    【讨论】:

    • 谢谢,但我在该选项之前尝试过,但不满意!
    • @RicardoCoelho,对我来说,你的道场工作。单击获取产品,设置过滤器,然后单击获取其他数据。过滤器消失了,所有行都显示出来了。
    • @ezanker :他的道场不起作用。切换产品时,过滤器不会更新。这就是问题所在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-03
    • 2023-03-19
    相关资源
    最近更新 更多