JqGrid:如何在afterSubmit中刷新网格?
我在寻呼机上有两个按钮,一个用于添加新记录。请参阅下面的代码:JqGrid:如何在afterSubmit中刷新网格?,jqgrid,Jqgrid,我在寻呼机上有两个按钮,一个用于添加新记录。请参阅下面的代码: $(grid_selector).jqGrid('navGrid', pager_selector, { edit: false, add: true, addicon : 'icon-plus-sign purple', del: true, delicon : 'icon-trash red', search: fal
$(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
}
},
...
}
添加记录后,我希望刷新网格。有人能告诉我怎么做吗
我使用本地数据进行测试
注意。确保在应用程序中使用的是jqGrid的更新版本 如果所有其他参数都正确(refresh:true等),则可以使用此参数重新加载网格
$(grid_selector).trigger("reloadGrid");
也请注意这个条件
由于数据类型已更改为本地(loadonce为true),因此未执行重新加载。您需要在afterSubmit函数中手动重新加载网格以进行表单编辑。在触发重载事件之前,需要将数据类型设置为json
$(grid_selector).jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
确保在应用程序中使用的是jqGrid的更新版本 如果所有其他参数都正确(refresh:true等),则可以使用此参数重新加载网格
$(grid_selector).trigger("reloadGrid");
也请注意这个条件
由于数据类型已更改为本地(loadonce为true),因此未执行重新加载。您需要在afterSubmit函数中手动重新加载网格以进行表单编辑。在触发重载事件之前,需要将数据类型设置为json
$(grid_selector).jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
确保在应用程序中使用的是jqGrid的更新版本 如果所有其他参数都正确(refresh:true等),则可以使用此参数重新加载网格
$(grid_selector).trigger("reloadGrid");
也请注意这个条件
由于数据类型已更改为本地(loadonce为true),因此未执行重新加载。您需要在afterSubmit函数中手动重新加载网格以进行表单编辑。在触发重载事件之前,需要将数据类型设置为json
$(grid_selector).jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
确保在应用程序中使用的是jqGrid的更新版本 如果所有其他参数都正确(refresh:true等),则可以使用此参数重新加载网格
$(grid_selector).trigger("reloadGrid");
也请注意这个条件
由于数据类型已更改为本地(loadonce为true),因此未执行重新加载。您需要在afterSubmit函数中手动重新加载网格以进行表单编辑。在触发重载事件之前,需要将数据类型设置为json
$(grid_selector).jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
表单编辑中使用的默认属性是
reloadeaftersubmit:true
。这意味着jqGrid触发reloadGrid
处理afterSubmit
你写了“我正在使用本地数据”。很难回答您的问题,因为您没有发布更多您使用的完整代码。我试着猜你在做什么。因为jqGrid到目前为止不支持本地编辑,所以我假设您的问题存在,因为您使用了loadonce:true
选项。如果使用该选项,则jqGrid会在首次加载数据后将原始的数据类型更改为“本地”
。换句话说,jqGrid在第一次加载数据后“中断”与服务器的连接(到url
)
因此,在jqGrid触发之前,只需重置原始的数据类型(“json”
或“xml”
)。相应的代码将涉及以下内容:
$(网格选择器).jqGrid(“导航网格”,寻呼机选择器,
{
编辑:false,
addicon:“图标加上紫色符号”,
delicon:“图标垃圾红色”,
搜索:假,
beforeRefresh:函数(){
$(this.jqGrid(“setGridParam”,{datatype:“json”});
}
},
{},//不需要编辑
{
//新纪录表格
url:“/添加”,
...
后提交:函数(){
$(this.jqGrid(“setGridParam”,{datatype:“json”});
}
},
...
}
上面的代码添加了“刷新”按钮,并在“刷新”方式中使用相同的刷新前和提交后按钮从服务器重新加载数据。我个人发现,在loadonce:true
场景中,此类按钮的存在是切实可行的。表单编辑中使用的默认属性是reloadAfterSubmit:true
。这意味着jqGrid触发reloadGrid
处理afterSubmit
你写了“我正在使用本地数据”。很难回答您的问题,因为您没有发布更多使用的完整代码。我尝试猜测您会做什么。因为jqGrid目前不支持本地编辑,所以我假设您的问题存在,因为您使用了loadonce:true
选项。如果使用了该选项,jqGrid将更改原始的数据类型e> 在第一次加载数据后连接到“local”
。换句话说,jqGrid在第一次加载数据后“断开”与服务器的连接(连接到url
)
因此,您只需在jqGrid触发器重新加载Grid
之前重置原始数据类型(“json”
或“xml”
)
$(网格选择器).jqGrid(“导航网格”,寻呼机选择器,
{
编辑:false,
addicon:“图标加上紫色符号”,
delicon:“图标垃圾红色”,
搜索:假,
beforeRefresh:函数(){
$(this.jqGrid(“setGridParam”,{datatype:“json”});
}
},
{},//不需要编辑
{
//新纪录表格
url:“/添加”,
...
后提交:函数(){
$(this.jqGrid(“setGridParam”,{datatype:“json”});
}
},
...
}
上面的代码添加了“刷新”按钮,并在“刷新”方式中使用相同的刷新前和提交后按钮从服务器重新加载数据。我个人发现,在loadonce:true
场景中,此类按钮的存在是切实可行的。表单编辑中使用的默认属性是reloadAfterSubmit:true
。这意味着jqGrid触发reloadGrid
处理afterSubmit
你写了“我正在使用本地数据”。很难回答你的问题,因为你没有发布更多你使用的完整代码。我尝试