jQgrid“loadComplete”事件仅在第一次加载时才被调用
Posted
技术标签:
【中文标题】jQgrid“loadComplete”事件仅在第一次加载时才被调用【英文标题】:jQgrid "loadComplete" event is not being called ONLY on first load 【发布时间】:2020-09-04 17:51:16 【问题描述】:我的问题如下,我在按下按钮时加载了一个 jQgrid。当网格第一次加载时,它不会调用loadComplete
函数,在这种情况下会调用modifEmitidoRecibidoPorEstado()
。
网格现在正在做的是正常加载但它不显示任何记录,这并不意味着它是空的,它只是不显示记录。
然后,当我手动更改显示的记录数量(在网格寻呼机中)或更改网格页面时,网格重新加载显示它应该显示的记录,并调用loadComplete
事件。当我执行$('#listaCheques').trigger('reloadGrid');
时,网格也会正确加载,问题是我只能手动执行此操作(例如通过按下按钮),因为我首先必须等待网格完成加载。
我需要的是第一次正确加载网格,这包括调用loadComplete
事件。
网格完成加载大约需要 2 到 10 秒这一事实可能很重要,它必须等待接收所有数据。
网格创建和加载函数:
//first time the function is called first == true
if (first==false)
jQuery('#listaCheques').jqGrid('clearGridData');
$("#listaCheques").jqGrid('setPostData',datosConsulta);
$("#listaCheques").trigger("reloadGrid");
else
first=false;
$("#listaCheques").GridUnload();
jQuery("#listaCheques").jqGrid(
loadError: checkErrors,
mtype : 'POST',
url:path+'/something.do?reqCode=load',
datatype: 'json',
postData:datosConsulta,
colNames:[//not relevant],
colModel:[//not relevant],
beforeSelectRow: function(rowid, e) //remove yellow highlight
return false;
,
rowNum: JQGRID_PARAMETERS.rowNum,
rowList: JQGRID_PARAMETERS.rowList,
pager: '#pagerCheques',
sortname: 'chequeNumero',
viewrecords: true,
emptyrecords:'message',
sortorder: "asc",
loadComplete:modifEmitidoRecibidoPorEstado,
gridComplete:gridFixIExplorer,
jsonReader :
root: "response.rows",
page: "response.page",
total: "response.total",
records: "response.records",
repeatitems: false
,
width:'100%',
height: '100%'
);
【问题讨论】:
【参考方案1】:使用哪个版本的jqGrid?好像很老了。
表达式 $("#listaCheques").GridUnload(); 表示 jqGrid 已经创建,我不确定是否正确调用它。
我建议你删除这行代码并测试。
【讨论】:
你说得对,我知道代码没用,但由于这是一个非常古老且庞大的银行系统,我宁愿保留它现在的样子,但是我测试了删除它并且问题保持不变.使用的 jqgrid 版本是 3.8.1。我就这个错误联系了我的队友,它似乎只在我的计算机上本地发生。以上是关于jQgrid“loadComplete”事件仅在第一次加载时才被调用的主要内容,如果未能解决你的问题,请参考以下文章