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