我使用 JqGrid 来列出、添加、删除、编辑、查找我的记录。当我选择loadonce=false时,它通常会在删除、编辑或添加后刷新记录。但是,分页和搜索机制不起作用。一旦我选择 loadonce=true,它会在删除后刷新记录,而不是在添加或编辑后刷新记录。然后分页和搜索在loadonce=true模式下正常运行。我尝试过;
$("#list").setGridParam({datatype:'json', page:1}).trigger('reloadGrid');
或
afterInsertRow: function (rowid,rowdata,rowelem){
alert("hello"); // this wasnt invoked
}
但他们没有解决我的问题。
我的问题是什么原因。
最佳答案
如果您使用loadonce: false
,则必须在服务器端实现分页、排序和搜索。如果分页和搜索不起作用,则说明您没有在当前服务器代码中实现这些功能。
选项reloadAfterSubmit
指定编辑后是否重新加载网格。
如果您使用loadonce: true
,则datatype
将在第一次加载后更改为'local'
。问题是jqGrid不支持本地表单编辑。所以你必须实现添加/编辑/删除的服务器部分。问题在于,这种情况下的重新加载将在本地执行,而不是从服务器执行。要在表单编辑结束后从服务器重新加载数据,您可以在 afterSubmit
回调中将 datatype
重置为初始状态(“json”或“xml”)。在这种情况下,下一次重新加载(在 reloadAfterSubmit: true
的情况下)将按照您的意愿从服务器完成。
更新:以下代码 afterSubmit应该可以解决问题:
afterSubmit: function () {
$(this).jqGrid("setGridParam", {datatype: 'json'});
return [true];
}
关于jquery - 保存或编辑 JqGrid 后不刷新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11268077/