我无法在提交时刷新网格以允许显示新数据,然后再次添加新项目。
解释的代码
jqGrid本身
$("#grid").jqGrid({
datatype: "local",
data: List,
width: 1405,
shrinkToFit: 1105,
rowNum: List.length,
colNames: ['id', 'Delete'],
colModel: [
{ name: 'id', index: 'id', editable: false, hidden: false, hidedlg: true },
{
name: 'actions', index: 'actions', width: 100, sortable: false, editable: false, formatter: imageFormat,
formatoptions: {
keys: true,
editbutton: false,
delOptions: { url: getURL('controller') + 'actionmethod?id=' + $('#id').val() }
}
}
],
添加行的外部按钮
$("#Add").click(function () {
$("#grid").jqGrid('editGridRow', "new", { height: 480, width: 400, reloadAfterSubmit: true, recreateForm: true });
});
基本上是afterSubmit事件......
$("#grid").bind("AfterSubmit", function (event, status, postData) {
$("#grid").jqGrid('GridUnload');
// This basically calls the code on the top
loadGrid();
// close the add item dialog...
});
问题是:
如果我删除该行:$("#grid").jqGrid('GridUnload')
网格无法正确刷新(不会在UI上添加新行)但是,它会将其添加到服务器端的数据库中,并且我可以继续将新行成功添加到数据库但不进行刷新。
当我说,"它会将它添加到数据库"我的意思是如果我重新加载整个页面,项目将显示
如果我保留该行:$("#grid").jqGrid('GridUnload')
网格将在第一次时正确刷新,并将该行添加到数据库中。之后我可以继续添加,但提交窗口不会关闭也不会刷新网格。
我尝试过使用
$("#grid").trigger('gridReload')
- 但没有任何成功(也许我用错了)
由于
答案 0 :(得分:0)
我认为你的错误在这里:
我尝试过使用
$(" #grid")。触发器(' gridReload') - 但没有任何成功(也许我是 使用它错了)
方法是" reloadGrid",所以使用
$("#grid").trigger('reloadGrid')
应该没问题,只需要刷新网格数据。