我正在使用jqgrid,并在其中添加了一个子网格,如下所示,
如你所见,
具有11和13列的行是主网格行
每一行都有子网格感兴趣, Add Record元素显示Add Sub up for Subgrid
以下是子网格的代码,
subGridRowExpanded: function(subgrid_id, row_id) {
var subgrid_table_id, pager_id;
subgrid_table_id = subgrid_id+"_t";
pager_id = "p_"+subgrid_table_id;
$("#"+subgrid_id).html("<table id='"+subgrid_table_id+"' class='scroll'></table><div id='"+pager_id+"' class='scroll'></div>");
jQuery("#"+subgrid_table_id).jqGrid({
url:"shops?q=2&ShopID="+row_id,
datatype: "xml",
colNames: ['Interest'],
colModel: [
//{name:"Id",index:"ShopID",width:80,editable:false,editoptions:{readonly:false,size:40}}, //Shop ID not required
{name:"id",index:"id",editable:true,edittype:"select",editoptions:{dataUrl:'shops?q=3&ShopID='+row_id},editrules:{required:true}}
],
rowNum:10,
pager: pager_id,
width: '100%',
height: '100%',
scrollOffset: 0,
sortname: 'num',
sortorder: "asc",
height: '100%',
editurl:'shops?q=5&ShopID='+row_id
});
jQuery("#"+subgrid_table_id).jqGrid('navGrid',"#"+pager_id,{edit:false,add:true,del:true})
},
subGridRowColapsed: function(subgrid_id, row_id) {
// this function is called before removing the data
//var subgrid_table_id;
//subgrid_table_id = subgrid_id+"_t";
//jQuery("#"+subgrid_table_id).remove();
}
一旦我们从弹出窗口添加值,它将转到兴趣选项卡,用于主网格的各行,并且应该从弹出窗口中删除该增值。
当前值已成功添加,但它会保持弹出状态,直到我们刷新主窗体。
提交后有没有办法重新加载弹出窗口?
感谢您的时间,谢谢
答案 0 :(得分:1)
如果要在"Cache-Control: private, max-age=0"
的响应中设置HTTP标头dataUrl
(请参阅here和here),问题可能会解决。如果您使用ASP.NET,我建议您阅读the answer。
或者,您可以使用选项
ajaxSelectOptions: { cache: false }
(见the answer)。
如果上述所有方法都没有帮助,您可以使用ajaxSelectOptions.data
作为功能,这样您就可以确保发送ShopID
dataUrl
参数recreateForm: true
的不同值。有关详细信息,请参阅the answer。
更新:我建议您另外使用添加和编辑表单的{{1}}选项。请参阅here使用示例。
答案 1 :(得分:0)
找到解决方案,
实际上我们可以使用afterSubmit事件,
可以在两个链接中找到解决方案
How to close form and reload grid after submit in jqgrid?
http://www.trirand.com/blog/?page_id=393/help/how-to-reload-edit-form-after-submit/
谢谢,如果有人需要更多解释,请发表评论