我正在使用jqgrid 4.3.1,我正在使用本地数据进行表单编辑。问题是添加或编辑后表单没有关闭。这是我的代码。
$('#studentset').jqGrid({
data: mydata,
datatype: "local",
colNames:['id','First Name', 'Last Name'],
colModel:[
{name:'id',index:'id', width:60},
{name:'firstName',index:'fName', width:300, editable:true},
{name:'lastName',index:'lastName', width:300, editable:true}
],
pager: '#pager',
rowNum: 10,
rowList: [5, 10, 20],
sortname: 'id',
sortorder: 'asc',
viewrecords: true,
height: "80%",
caption: "Students to be Registered",
editurl: corpUrl
});
$('#studentset').jqGrid('navGrid', '#pager', { add: true, edit: true, del: false, search: false, refresh: false },
{
recreateForm: true,
closeAfterEdit: true,
modal:true,
afterSubmit: function(data){
var myObject = eval('(' + data.responseText + ')');
$('#studentset').setGridParam({data: myObject}).trigger("reloadGrid");
}
},
{
recreateForm: true,
closeAfterAdd: true,
modal:true,
afterSubmit: function(data){
var myObject = eval('(' + data.responseText + ')');
$('#studentset').setGridParam({data: myObject}).trigger("reloadGrid");
}
},
{},{},{}
);
请注意,在navGrid的编辑和添加选项中,我已指定了相关选项。 closeAfterAdd: true,
和closeAfterEdit: true
。但模态形式只是拒绝接近。我不确定它是否是这个版本的jqgrid中的一个错误。
有人可以提供一些指导吗?可能是,如何手动关闭对话框?
答案 0 :(得分:7)
根据文件记录, afterSubmit 的语法是:
afterSubmit : function(response, postdata)
{
…
return [success,message,new_id]
}
否则IE8会在数据成功发布后抛出错误。
你可以使用:
return [true,'',''];
然后 closeAfterAdd:true 和 closeAfterEdit:true 无需以编程方式关闭表单即可运行:
$('#cData').trigger('click');
答案 1 :(得分:3)
好吧它的逻辑,只需触发对话框关闭按钮的click事件就像这样。您将使用fire bug找到span标记的ID。
$('#studentset').jqGrid('navGrid', '#pager', { add: true, edit: true, del: false, search: false, refresh: false },
{
modal:true,
jqModal: true,
afterSubmit: function(data){
var myObject = eval('(' + data.responseText + ')');
$('#studentset').setGridParam({data: myObject}).trigger("reloadGrid");
$(".ui-icon-closethick").trigger('click');
}
},
{
modal:true,
jqModal: true,
afterSubmit: function(data){
var myObject = eval('(' + data.responseText + ')');
$('#studentset').setGridParam({data: myObject}).trigger("reloadGrid");
$(".ui-icon-closethick").trigger('click');
}
},
{},{},{}
);
希望有人从中受益。
答案 2 :(得分:0)
你可以在bootstrap的帮助下完成,将jqgrid放在div中然后用链接关闭div的想法就是出于此目的。以下是代码。
<div>
<div class="alert alert-default">
<a href="#" id="okayMessage" class="close" data-dismiss="alert"
aria-label="close">×</a>
<br>
<table id="accountIdSearch" style="font-size: 11px"></table>
<div id="pagingDivId" style="height: 50px;">
</div>
</div>
</div>