【问题标题】:how to load the new added data in jqgrid如何在jqgrid中加载新添加的数据
【发布时间】:2011-04-11 10:30:29
【问题描述】:

我知道这对某些人来说听起来很简单。我也试过这个one。但是由于某种原因,我在jqgrid中确实无法刷新和查看我新添加、编辑和删除的内容。

我正在我的程序中创建一个按钮,用于添加、编辑和删除,之后,它将刷新我的 jqgrid 并显示我在他们所做的任何更改。例如,我添加了新数据,。在第一次尝试时,它将显示新添加的数据,但在第二次尝试时,它将不再显示。我的编辑和删除数据也不会刷新。这是代码:

function Edit(){  
   var selected = $("#list1").jqGrid('getGridParam', 'selrow');  
   var dat = {
     "ID": 'xyz',
     ...
     "keyFields": [{"..."}] 
   };                
  update(dat); 
  $('#list1').trigger('reloadGrid');  
} 

function update(dat){
  $.ajax({
     type: 'GET',
     url: 'mydata.php?' + $.param({path:'this/update',json:JSON.stringify(dat)}),
     dataType: Settings.ajaxDataType,
     success: function(data) {
       if ('error' in data)
       {
         alert('ERROR']);
       }
    }
  });
}

服务器端没问题,无论我在屏幕上做什么都会更新。当我第一次仅使用添加按钮执行此操作时,完全没有问题。只有在我的编辑和删除按钮之后才出现问题。希望有人能帮助我理解这一点。

【问题讨论】:

    标签: javascript jquery jqgrid


    【解决方案1】:

    您没有发布您使用的 jqGrid 的任何定义,所以我只能说您发布的代码中有什么问题。

    第一个问题是您必须将 $('#list1').trigger('reloadGrid');insidesuccess 句柄的 $.ajax 调用 update 函数。只有在服务器上成功更新数据后,您才应该触发网格重新加载。

    如果您使用loadonce:true 参数将jqGrid 的datatype 参数的原始值更改为datatype:'local',您可能会遇到的第二个问题。如果您使用loadonce:true 并需要从服务器重新加载数据,则必须将 jqGrid 的 datatype 参数重置为其初始值(“xml”或“json”取决于您使用的内容),然后才重新加载网格关于'reloadGrid'。要更改datatype,可以使用jqGrid 的setGridParam 方法。

    【讨论】:

    • hhhmmm,它现在可以工作了...我怎么没想到。?再次感谢奥列格。你总是救了我。也感谢您的提示和新的学习
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多