javascript - 如何在jqgrid中加载新添加的数据

标签 javascript jquery jqgrid

我知道这对某些人来说听起来很简单。我也试过这个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']);
       }
    }
  });
}

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

最佳答案

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

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

如果使用 loadonce:true 参数将 jqGrid 的 datatype 参数的原始值更改为 datatype:'本地'。如果您使用 loadonce:true 并且需要从服务器重新加载数据,您必须将 jqGrid 的 datatype 参数重置为其初始值('xml' 或 'json ' 取决于你使用什么),然后才根据 'reloadGrid' 重新加载网格。要更改数据类型,您可以使用 jqGrid 的 setGridParam 方法。

关于javascript - 如何在jqgrid中加载新添加的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5620009/

相关文章:

javascript - 使用 JSContext 在 swift 中调用匿名 javascript 函数

javascript - 溢出滚动不适用于位置固定元素 iOS

javascript - 动态命名部分 div 以备后用?

具有多个分组的 Javascript 网格

javascript - Jqgrid在寻呼机中隐藏按钮分隔符

javascript - 使用 Place 获取 Google map Place id

javascript - React Map 方法 - 单独放置回调函数并发送参数

jquery - 发现实际页面里面是否有jqGrid对象

javascript - 如何使用 jQuery 在按下 TAB 后重新获得焦点?

jquery - zIndex IE6/IE7 修复使用 jQuery?