我有一个包含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
}
)
;
答案 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对你来说会更好。
此外,我建议您验证您的要求。可能是因为数据或行数足够大,使用服务器端分页,排序和过滤日期会更好,因为数量或行足够大。