我在寻呼机中有两个按钮,一个用于添加新记录。请参阅以下代码:
$(grid_selector).jqGrid('navGrid', pager_selector,
{
edit: false,
add: true,
addicon : 'icon-plus-sign purple',
del: true,
delicon : 'icon-trash red',
search: false,
refresh: false,
view: false,
},
null, //no need for edit
{
//new record form
url: "/add",
...
afterSubmit : function(response, postdata) {
// ??? how to refresh the grid
}
},
...
}
添加记录后,我希望刷新网格。有人能告诉我怎么做吗?
我正在使用本地数据进行测试。
问候。
答案 0 :(得分:2)
确保您在应用程序中使用更新版本的jqGrid 如果所有其他参数都正确(刷新:true等),您可以使用它来重新加载网格
$(grid_selector).trigger("reloadGrid");
请注意这个条件
由于数据类型已更改为local(loadonce为true),因此不执行重新加载。您需要在afterSubmit函数中手动重新加载网格以进行表单编辑。在触发重载事件之前,需要将数据类型设置为json。
$(grid_selector).jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
答案 1 :(得分:1)
表单编辑中使用的默认属性为reloadAfterSubmit: true
。这意味着jqGrid会触发reloadGrid
的{{1}}处理。
你写了#34;我正在使用本地数据"。您的问题很难回答,因为您没有发布更多您使用的完整代码。我试着猜你做了什么。因为到目前为止jqGrid不支持本地编辑,所以我认为你的问题存在是因为你使用了afterSubmit
选项。如果使用该选项,则jqGrid会在首次加载数据后将原始loadonce: true
更改为datatype
。换句话说,jqGrid" break"第一次加载数据后连接到服务器("local"
)。
因此,您只需在jqGrid触发url
之前重置原始datatype
("json"
或"xml"
)。相应的代码将包含以下内容:
reloadGrid
以上代码添加"刷新"按钮并使用相同的$(grid_selector).jqGrid("navGrid", pager_selector,
{
edit: false,
addicon : 'icon-plus-sign purple',
delicon : 'icon-trash red',
search: false,
beforeRefresh: function () {
$(this).jqGrid("setGridParam", { datatype: "json" });
}
},
{}, //no need for edit
{
//new record form
url: "/add",
...
afterSubmit: function () {
$(this).jqGrid("setGridParam", { datatype: "json" });
}
},
...
}
和beforeRefresh
。在路上"刷新"按钮从服务器重新加载数据。我个人认为afterSubmit
场景中存在这样的按钮。