【问题标题】:jqGrid with datatype: "jsonstring" only displaying first page数据类型为“jsonstring”的 jqGrid 仅显示第一页
【发布时间】:2014-03-05 19:56:35
【问题描述】:

我的 JqGrid 使用 JSON 从服务器接收数据,我使用这些参数:

_self.GridParams = { rows: 7, page: 1, sidx: '', sord: '' }

之后,将数据放入变量data中:

Object
colModel: Array[194]
colNames: Array[194]
groupHeaders: Array[48]
page: 1
records: 17
rows: Array[4]
total: 3

我只收到包含 7 个元素的第一页,但寻呼机无法工作并显示“查看 1 - 7 个,共 7 个”。

我用这段代码创建了我的网格:

function _CreateGrid(queryId) {
    var gridWidth = ...;

    //Load data with JSON
    Utilities.JsonGet("/GetList?QueryId=" + queryId + "&ZoomLevel=" + _self.ZoomLevel + "&Start=" + _self.StartDate.toISOString().slice(0, 10) + "&End=" + _self.EndDate.toISOString().slice(0, 10), _self.GridParams, function (data) {
        console.log(data);

        //Dymamicly create column model
        for (var i = 0; i < data.colModel.length; i++) {
            var row = data.colModel[i];
            row.cellattr = row.isSchedulerColumn ? _self.SchedulerCellAttr : _self.NonSchedulerCellAttr;
            row.formatter = row.isSchedulerColumn ? _self.SchedulerCellFormatter : _self.NonSchedulerCellFormatter;
            data.colModel[i] = row;

            //Set width
            if (row.isSchedulerColumn) {
                var zoomColWidth = 0;
                switch (_self.ZoomLevel) {
                    case 0: zoomColWidth = _self.HourColumnWidth; break;
                    case 1: zoomColWidth = _self.QuarterColumnWidth; break;
                    case 2: zoomColWidth = _self.TenColumnWidth; break;
                }
                if (zoomColWidth > 5) {
                    row.width = (zoomColWidth - 5);
                    _self.SchedulerCellWidth = 0;
                }
            }


            if (row.isSchedulerColumn && _self.SchedulerCellWidth === 0) {
                _self.SchedulerCellWidth = row.width + 5; //Account for the loss of padding/borders  
            }
        }

        // Clean up previous version of the grid.
        $("#" + _self.SchedulerGridBaseId + "-container").remove();

        // Create the grid's container.
        Ui.CreateJQGridContainer(_schedulerGridWrapper, _self.SchedulerGridBaseId);

        _$jqGrid = jQuery("#" + _self.SchedulerGridBaseId + "-table").jqGrid({
            datatype: "jsonstring",
            colNames: data.colNames,
            colModel: data.colModel,
            datastr: data,
            height: 280,
            width: gridWidth,
            shrinkToFit: false,
            jsonReader: {
                repeatitems: false
            },
            viewrecords: true,
            gridview: true,
            hoverrows: false,
            pager: "#" + _self.SchedulerGridBaseId + "-pager",
            toolbar: [true, "top"],
            onPaging: _OnGridPaging,
            beforeSelectRow: function () {
                return false;
            }
        });

        _$jqGrid.jqGrid('setGroupHeaders', {
            useColSpanStyle: false,
            groupHeaders: data.groupHeaders
        });

        _$jqGrid.jqGrid('setFrozenColumns');

        //Set row height
        var ids = _$jqGrid.getDataIDs();
        for (i = 0; i < ids.length; i++) {
            _$jqGrid.setRowData(ids[i], false, { height: _self.RowHeight });
        }
    }, function () { }, true);
}

【问题讨论】:

    标签: javascript jquery json jqgrid


    【解决方案1】:

    分页参数中缺少 pageSize 属性以获取更多详细信息
    http://yassershaikh.com/how-to-use-jqgrid-with-asp-net-mvc/

    【讨论】:

      猜你喜欢
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      相关资源
      最近更新 更多