Javascript JqGrid don';我在点击按钮后重新加载

Javascript JqGrid don';我在点击按钮后重新加载,javascript,jquery,jqgrid,reload,Javascript,Jquery,Jqgrid,Reload,我在我的项目中与jqGrid合作,我有一个问题,即使在阅读了关于同一主题的论坛之后,似乎也无法解决 当用户选择日期后单击按钮时,我会重新加载网格。我想让数据充值对应程序选择日期 我使用以下代码: var loadfacture = false; $('#btn-facture').click(function(){ if(!loadfacture){ $("#factures").jqGrid({

我在我的项目中与jqGrid合作,我有一个问题,即使在阅读了关于同一主题的论坛之后,似乎也无法解决

当用户选择日期后单击按钮时,我会重新加载网格。我想让数据充值对应程序选择日期

我使用以下代码:

var loadfacture  = false;

    $('#btn-facture').click(function(){     

        if(!loadfacture){           

            $("#factures").jqGrid({
                url:'loadfactureencours.json',
                datatype: "json",           
                autowidth: true,
                height:250,
                colNames:['#','Numero','Date', 'Client','Serveur','Prix Total','Avance','Regler','Notes'],
                colModel:[
                    {name:'idfac',index:'idfac', width:45,align:"center"},
                    {name:'numfac',index:'numfac', width:80,align:"center"},
                    {name:'datefac',index:'datefac', width:150,align:"center"},
                    {name:'client',index:'client', width:145,align:"center"},
                    {name:'utilisateur',index:'utilisateur', width:125,align:"center"},                     
                    {name:'montant',index:'montant', width:70,align:"center"},
                    {name:'avance',index:'avance', width:60,align:"center"},
                    {name:'regler',index:'regler', width:50,align:"center"},
                    {name:'description',index:'description', width:150, sortable:false}
                ],
                rowNum:10,
                rowTotal: 2000,
                rowList : [10,20,30,40,50,60],
                loadonce:true,
                mtype: "GET",
                postData: {
                    day: function () {                      
                        return $('#daySelect').val();
                    }
                },
                rownumbers: false,
                rownumWidth: 40,
                gridview: true,
                pager: '#paging',
                sortname: 'idfac',  
                viewrecords: true,
                sortorder: "desc",
                caption: "",
                ondblClickRow: function(rowid,iRow,iCol,e){
                    var rowData = jQuery(this).getRowData(rowid);
                    console.log(rowData);
                    window.location = "ecrancommandebar.html?num="+rowData.numfac;
                }
            });

            $("#factures").jqGrid('navGrid','#paging',{del:false,add:false,edit:false});
            loadfacture  = true;


        }else{          

            var grid = $("#factures");
                   grid.trigger("reloadGrid",[{current:true}]);

        }

    });
我通过阅读论坛上关于同一主题的文章构建了这段代码,但是当我在更改日期后单击按钮时,网格第一次加载,什么也没有发生

你怎么了?感谢您的反馈。

您可以尝试以下方法:

}else{          
   var grid = $("#factures");
   $.ajax({
      url: "loadfactureencours.json",
      dataType: "json",
      success: function(data){
          grid.trigger("reloadGrid",[{current:true}]);
      },
      error: function(){}
   });

}
您可以尝试以下方法:

}else{          
   var grid = $("#factures");
   $.ajax({
      url: "loadfactureencours.json",
      dataType: "json",
      success: function(data){
          grid.trigger("reloadGrid",[{current:true}]);
      },
      error: function(){}
   });

}

您可以使用
loadonce:true
选项,在首次从服务器加载数据后,将
数据类型从初始的
“json”
更改为
“local”
。它允许支持数据的本地排序、分页和过滤。所以您应该理解
grid.trigger(“reloadGrid”,[{current:true}])将仅重新加载先前保存的响应中的数据。因此,在将
datatype
参数的值重置为
“json”
之前,不会从服务器重新加载。换句话说,您应该将
else
部分改写为关于以下内容

...
} else {          
    $("#factures").jqGrid("setGridParam", {datatype: "json"})
        .trigger("reloadGrid", [{current: true, page: 1}]);
}

您可以使用
loadonce:true
选项,在首次从服务器加载数据后,将
数据类型从初始的
“json”
更改为
“local”
。它允许支持数据的本地排序、分页和过滤。所以您应该理解
grid.trigger(“reloadGrid”,[{current:true}])将仅重新加载先前保存的响应中的数据。因此,在将
datatype
参数的值重置为
“json”
之前,不会从服务器重新加载。换句话说,您应该将
else
部分改写为关于以下内容

...
} else {          
    $("#factures").jqGrid("setGridParam", {datatype: "json"})
        .trigger("reloadGrid", [{current: true, page: 1}]);
}