【问题标题】:jQgrid "loadComplete" event is not being called ONLY on first loadjQgrid“loadComplete”事件仅在第一次加载时才被调用
【发布时间】: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%'
   });
                    

【问题讨论】:

    标签: javascript jquery jqgrid


    【解决方案1】:

    使用哪个版本的jqGrid?好像很老了。

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

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

    【讨论】:

    • 你说得对,我知道代码没用,但由于这是一个非常古老且庞大的银行系统,我宁愿保留它现在的样子,但是我测试了删除它并且问题保持不变.使用的 jqgrid 版本是 3.8.1。我就这个错误联系了我的队友,它似乎只在我的计算机上本地发生。
    猜你喜欢
    • 2020-06-28
    • 1970-01-01
    • 2011-08-02
    • 2021-01-27
    • 2011-05-26
    • 2020-12-31
    • 1970-01-01
    • 2019-11-28
    • 2017-09-26
    相关资源
    最近更新 更多