首页 > 解决方案 > jQgrid“loadComplete”事件仅在第一次加载时才被调用

问题描述

我的问题如下,按下按钮时我加载了一个 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%'
   });
                    

标签: javascriptjqueryjqgrid

解决方案


使用哪个版本的 jqGrid?它似乎是一个很古老的东西。

表达式$("#listaCheques").GridUnload(); 表示 jqGrid 已经创建,我不确定它是否正确调用。

我建议您删除这行代码并进行测试。


推荐阅读