0

我一直无法让 jqGrid 分组选项显示在我的数据表上。我显示数据的过程是从服务器获取 json。我将它排序成一个数组,设置我的过滤器,然后在表格上显示数据。

我一直在阅读有关分组如何以不同方式处理本地和服务器数据的信息,但我不完全了解区别是什么,或者它是否与我的问题有关?

 $("#transGrid").jsGrid({
        width: '100%',
        height: 'auto',

        editing: false,
        autoload: true,
        paging: true,
        filtering: true,
        sorting: true,

        pageSize: 100,
        pageButtonCount: 10,

        grouping:true,
        groupingView : {
            groupField: ['amount'],
            groupColumnShow: [false],
            groupOrder: ['desc'],
            groupCollapse: true
        },

        rowClick: function(args){
            TransactionReceipt(args.item);
        },

        controller: {
            loadData: function (filter) {
                $('#error').empty();
                var deferred = $.Deferred();
                $.ajax({
                    type: 'GET',
                    url: '/tableGet/payments',
                    dataType: 'json',
                    success: function (data) {
                        var rawPayments = data;
                        var rows;
                        $.ajax({
                            type: 'GET',
                            url: '/getProjects',
                            dataType: 'json',
                            success: function (data) {
                                //HERE IS WHERE I SORT THAT DATA INTO AN ARRAY
                                rows = BuildRow(rawPayments, data);
                                rows = $.grep(rows, function (item) {
                                    return (!filter.amount || item.amount === filter.amount)
                                        && (!filter.sku || item.sku.indexOf(filter.sku) > -1)
                                        && (!filter.name || item.name.indexOf(filter.name) > -1)
                                        && (!filter.quantity || item.quantity === filter.quantity)
                                        && (!filter.price_per_ton || item.price_per_ton === filter.price_per_ton)
                                        && (!filter.project_name || item.project_name.indexOf(filter.project_name) > -1)
                                        && (!filter.cardType || item.cardType.indexOf(filter.cardType) > -1)
                                        && (!filter.class || item.class.indexOf(filter.class) > -1)
                                        && (!filter.memo || item.memo.indexOf(filter.memo) > -1)
                                        && (!filter.created.from || new Date(item.created) >= filter.created.from)
                                        && (!filter.created.to || new Date(item.created) <= filter.created.to);
                                });
                                deferred.resolve(rows);
                            }
                        });
                    }
                });

                $('#homeCSV').unbind().click(function () {
                    $('#paymentGridContent').tableToCSV();
                });

                return deferred.promise();
            }

        fields: [
            {name: 'created', type: 'date', title: 'DATE', align: 'left', headercss: 'gridHeader', css: 'gridBody'},
            {name: 'class', type: 'text', title: 'CLASS', align: 'left', headercss: 'gridHeader', css: 'gridBody'},
            {name: 'name', type: 'text', title: 'NAME', align: 'left', headercss: 'gridHeader', css: 'gridBody'},
            {name: 'sku', type: 'text', title: 'SKU', headercss: 'gridHeader', css: 'gridBody', align: 'left'},
            {name: '', type: 'text', title: 'COST FOR CE', headercss: 'gridHeader', css: 'gridBody', align: 'left'},
            {name: 'quantity', type: 'text', title: 'QUANTITY', headercss: 'gridHeader', css: 'gridBody', align: 'left'},
            {name: 'vendor', type: 'text', title: 'VENDOR', headercss: 'gridHeader', css: 'gridBody', align: 'left'},
            {name: 'term', type: 'text', title: 'TERMS', headercss: 'gridHeader', css: 'gridBody', align: 'left'},
            {name: 'account', type: 'text', title: 'ACCOUNT', headercss: 'gridHeader', css: 'gridBody', align: 'left'},
            {name: 'amount', type: 'text', title: 'AMOUNT', headercss: 'gridHeader gridMoneyHeader', css: 'gridMoney gridBody', align: 'left',
                itemTemplate: function (value) {
                    return '$' + PennyReduction(value);
                }
            },
            {name: 'memo', type: 'text', title: 'MEMO', headercss: 'gridHeader gridMoneyHeader', css: 'gridBody', align: 'left'},
            {
                type: 'control',
                editButton: false,
                deleteButton: false,
                clearFilterButton: true,
                modeSwitchButton: true
            }
        ]
    });
4

0 回答 0