如何在jqGrid中使用JSON显示太多行数据

时间:2017-02-01 09:00:42

标签: asp.net-mvc jqgrid

我有一个包含15列和60000行的列表,我在ASP.NET MVC中通过JSON到达它,所以我的jqGrid无法加载数据并在网格中显示它们,但当行数减少到30000时,它显示正确。

请帮助我如何解决

jQuery("#jqgrid").jqGrid({
            url: '@Url.Action("_FillGridProjectCodingCompanyCode", "Letter")' + '?ProjectId=' + ProjectIdVal,
            jsonReader: {
                repeatitems: false,
                root: function (obj) {

                    return obj.records;
                }
            },
            datatype: "json",
            height: 'auto',
            colNames: ['', 'Archive_DCC_Coding_Id', 'SubProject'
                , 'Plant', 'PlantUnit', 'SubUnit', 'Discipline', 'Facility', 'Activity Code',
                'Activity', 'FIECo. DOC No.', 'Revision', 'Document title & Description', ' Client No',
                ' transmittal No', 'transmittal'
                ,'transmittal status', 'status', 'Latest Respansibility'
            ],
            colModel: [
                {
                    name: 'act',
                    index: 'act',
                    sortable: false,
                    width: 25,
                    search:false
                },
                {
                    name: 'Archive_DCC_Coding_Id',
                    index: 'Archive_DCC_Coding_Id',
                    hidden: true,
                    search: false,
                    searchoptions: { sopt: ['eq', 'ne', 'le', 'lt', 'gt', 'ge'] }//عدد

                },
                {
                    name: 'Sub_Proj_Code',
                    index: 'Sub_Proj_Code',
                    width: 70,
                    hidden: true,
                    search:true,
                    searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                },
                {
                    name: 'Plant_Code',
                    index: 'Plant_Code',
                    width: 70,
                    hidden: true,
                    searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                },
                    {
                        name: 'Plant_unit_code',
                        index: 'Plant_unit_code',
                        width: 70,
                        hidden: true,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    }
                    ,
                    {
                        name: 'sub_unit_code',
                        index: 'sub_unit_code',
                        width: 70,
                        hidden: true,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },
                    {
                        name: 'discipline',
                        index: 'discipline',
                        width: 70,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },
                    {
                        name: 'facility',
                        index: 'facility',
                        width: 70,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },
                    {
                        name: 'Act_PrimaveraId',
                        index: 'Act_PrimaveraId',
                        width: 70,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },
                    {
                        name: 'Act_Name',
                        index: 'Act_Name',
                        width: 100,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },
                    {
                        name: 'comp_code',
                        index: 'comp_code',
                        width: 100,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },
                    {
                        name: 'Comp_Revision',
                        index: 'Comp_Revision',
                        width: 50,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },

                    {
                        name: 'comp_subject',
                        index: 'comp_subject',
                        width: 150,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }

                    },
                    {
                        name: 'client_document_no',
                        index: 'client_document_no',
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },
                    {
                        name: 'trans_ref_no',
                        index: 'trans_ref_no',
                        width: 100,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },
                    {
                        name: 'ChkMain_Subject',
                        index: 'ChkMain_Subject',
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },                   
                    {
                        name:'chkMain_status',
                        index: 'chkMain_status',                    
                        width: 50,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },
                    {
                        name: 'last_status',
                        index: 'last_status',
                        width: 100,
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    },
                    {
                        name: 'last_receiver',
                        index: 'last_receiver',
                        searchoptions: { sopt: ['eq', 'bw', 'bn', 'cn', 'nc', 'ew', 'en'] }
                    }
            ],
            rowNum: 5,
            rowList: [5,10,15, 20,25, 30],
            toppager: true,
            pager: '#pjqgrid',
            sortname: 'comp_code',
            toolbarfilter: true,
            viewrecords: true,
            sortable: true,
            sortorder: "asc",
            loadonce: true,
            gridview: true,           
            shrinkToFit: true,

            gridComplete: function () {

                var ids = jQuery("#jqgrid").jqGrid('getDataIDs');
                for (var i = 0; i < ids.length; i++) {
                    var cl = ids[i];

                    ed = "<button class='btn btn-xs btn-default' type='button' onclick=\"EditLetter('" + cl + "');\" data-toggle='modal' data-target='#EditLetterModal'><i class='fa fa-pencil'></i></button>";
                    ins = "<button class='btn btn-xs btn-default' type='button'  onclick=\"InsertLetter('" + cl + "');\" data-toggle='modal' data-target='#LetterModal'><i class='fa fa-plus'></i></button>";
                    chain = "<button class='btn btn-xs btn-default' type='button' onclick=\"ViewLetter('" + cl + "');\" data-toggle='modal' data-target='#LetterChainModal'><i class='fa fa-chain'></i></button>";

                    jQuery("#jqgrid").jqGrid('setRowData', ids[i], {
                        act: ed + ins+chain
                    });
                }
            },
            editurl: "dummy.html",
            caption: "Document ",

            width: '100%'

        }).jqGrid('navGrid', '#pjqgrid', { edit: false, add: false, del: false, refresh: true, view: false, cloneToTop: true },
                {}, {}, {}
                , {
                    multipleSearch: true,
                    multipleGroup: true,
                    showQuery: true
                }
                )
        ;

2 个答案:

答案 0 :(得分:0)

jqGrid之前有很多行的问题。我不知道它还能解决这个问题。 因此,我建议您尝试使用上一版本的库,并检查rowNum: 5。可以通过将其更改为rowNum: ''来解决它。

答案 1 :(得分:0)

您没有发布您使用的ASP.NET MVC版本以及哪个JSON序列化程序。以同样的方式,您不会发布您使用的jqGrid版本以及jqGrid(free jqGrid,商业Guriddo jqGrid JS或版本中的旧jqGrid&lt; = 4.7)的哪个版本。您可以在the demo上验证网格的性能,包含60000行数据和15列。我在演示中使用了免费的jqGrid 4.13.6 - 我开发的fork。

我认为您的问题是纯服务器端问题,其中包含JSON序列化数据的大小限制。例如,如果ASP.NET MVC使用旧的JavaScriptSerializer序列化程序,则必须增加全局属性MaxJsonLength的值。请参阅the old answer以及更多详细信息。可能another answer对你来说会更好。

此外,我建议您验证您的要求。可能是因为数据或行数足够大,使用服务器端分页,排序和过滤日期会更好,因为数量或行足够大。