0

这是我的 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,它显示在网格中。但我不知道如何过滤数据。

有任何想法吗?

4

1 回答 1

1

客户端过滤和服务器端过滤完全由开发人员承担。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

于 2017-04-09T15:45:50.317 回答