如果jqgrid中没有数据,我的Jqgrid寻呼机显示1的0

时间:2013-06-21 05:45:37

标签: jquery jqgrid

  1. 下面的代码是我的JQGRID代码,我使用JsonReader绑定网格中的数据。还可以找到下面发布的图片。
  2. 2.我的服务响应是JSON,所以我使用JSON Reader,如果我改为“localReader”,数据没有绑定。

    This is my JQgrid pager, even though, if there is no data, the pager shows 1 of 0.

    jQuery(document).ready(function () {
            $("#datagrid").jqGrid({
                url: service url,
                ajaxGridOptions: { contentType: 'application/json; charset=utf-8' },
                type: "GET",
                datatype: "json",
                colNames:['Id','MID','Status','VendorID','VendorName','InvoiceNo','DocDate','Amount','DocNo','Type','DueDate','ClDoc','Text','UserName','Currency','ConCode','Region','Stat','Process','Comb','Comments'],
                colModel:[
        {name:'id',index:'id', width:50,sortable:true},
        {name:'mid',index:'mid', width:50, sortable:true},
        {name:'status',index:'status', width:70, sortable:true},
        {name:'vendorid',index:'vendorid', width:90, sortable:false,align:"left"},
        {name:'vendorname',index:'vendorname', width:170, sortable:false,align:"left"},
        {name:'invoiceno',index:'invoiceno', width:130, sortable:false,align:"left"},   
        {name:'docdate',index:'docdate', width:100, sortable:false},
        {name:'amount',index:'amount', width:80, sortable:false,align:"Right"},
        {name:'docno',index:'docno', width:100, sortable:false},
        {name:'typee',index:'typee', width:50, sortable:false},
        {name:'duedate',index:'duedate', width:100, sortable:false},
        {name:'cldoc',index:'cldoc', width:80, sortable:false},
        {name:'text',index:'texxt', width:70, sortable:false},
        {name:'username',index:'username', width:100, sortable:false},
        {name:'currency',index:'currency', width:80, sortable:false},
        {name:'concode',index:'concode', width:80, sortable:false},
        {name:'region',index:'region', width:70, sortable:false},
        {name:'stat',index:'stat', width:60, sortable:false},
        {name:'process',index:'process', width:60, sortable:false},
        {name:'combination',index:'combination', width:60, sortable:true},
        {name:'comments',index:'comments', width:150, height:20, edittype:'textarea', sortable:false, editable: true,
                editoptions: {disabled: false, size:50, resizable:true}}
        ],
    
        jsonReader: {
            repeatitems: false,        // To Bind the Data in Grid.
            id: "id",
            root: function (obj) { return obj; },        // To Bind the Data in Grid.
            page: function () { return 1; },
            total: function () { return 1; },
            records: function (obj) { return obj.length; },
             subgrid: {
                root: "rows",
                cell: "cell",
                repeatitems: false,                        // To Bind the Data in SubGrid.
                id: "id",
                root: function (obj) { return obj; }       // To Bind the Data in SubGrid.
                }
        },
    
                rowNum:20,
                rowList:[20,30,40,50],
                loadonce: true,       // If True, all pages will be loaded, else only 1 page will be displayed.
                pager: '#navGrid',
                sortable: true,
                sortname: 'mid',
                viewrecords: true,
                showOn: 'button',
                multiselect:true,   // Enabling Checkbox.       
                sortorder: 'asc', 
                //prmNames: {rows: 'max'},
                prmNames: {rows: 'max', search: null},
                height: 290,
                width: 1222,
                shrinkToFit: false,            // For Horizontal Scrollbar.
                toolbar: [true,"bottom"],      // For appending Buttons in Toolbar.
                rownumbers: true             // To display No.of rows.
            });
        });
    

1 个答案:

答案 0 :(得分:3)

您引用了正确的answer,这可能会对问题起到额外的作用。我想你已经使用了最新版本的jqGrid和描述的修复。

我认为问题的根源非常简单。您使用的选项jsonReader包含page属性,定义为

page: function () { return 1; }

这意味着即使来自服务器的响应包含空数组,它也会显示页码1。我认为您应该将代码更改为以下

page: function (obj) { return obj.length > 0 ? 1 : 0; }

page: function (obj) { return obj.length > 0 ? "1" : "0"; }