动态数据是通过Js-grid获取的,但是过滤不起作用?

时间:2017-04-04 12:41:51

标签: filtering jsgrid

这是我的JS Grid的JS代码

$(function() {

        $.ajax({
            type : "GET",
            url : "/Final/Reports?value=2016-03-03&value2=2017-03-03"
        }).done(function() {

            $("#jsGrid").jsGrid({
                height : "auto",
                width : "100%",         
                filtering: true,
                   sorting : true,
                paging : true,
                autoload : true,
                pageSize : 3,
                controller : {
                    loadData : function(filter) {
                        return $.ajax({
                            type : "GET",
                            url : "/Final/Reports?value=2016-03-03&value2=2017-03-03",
                            data : filter
                        });
                    },
                },
                fields : [ {
                    name : "patientId",
                    type : "text",
                    width : 150
                }, {
                    name : "patientName",
                    type : "text",
                    width : 150
                }, {
                    name : "genderId",
                    type : "number",
                    width : 150
                }, {
                    name : "mobile",
                    type : "number",
                    width : 150
                }, {
                    type : "control"
                } ]
            });

        });
    });

我是JS网格的新手,我使用servlet获取数据,并在网格中显示。但我不知道如何过滤数据。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

  

客户端过滤和服务器端过滤完全开启   开发者的肩膀。 loadData中实施的客户端过滤   控制器的方法。服务器端显然是用服务器实现的   接收过滤参数的脚本,并使用它们来获取   数据,并传递给客户端。

     

这就是为什么你可以使用客户端和   服务器端过滤同时进行。这是你的方式   在这种情况下,controller.loadData方法看起来像:

loadData: function(filter) {
    var d = $.Deferred();

    // server-side filtering
    $.ajax({
        type: "GET",
        url: "/items",
        data: filter,
        dataType: "json"
    }).done(function(result) {
        // client-side filtering
        result = $.grep(result, function(item) {
             return item.SomeField === filter.SomeField;
        });

        d.resolve(result);
    })

    return d.promise();
}

来源问题:https://github.com/tabalinas/jsgrid/issues/32