jqgrid - 关闭表单对话框

时间:2012-01-31 10:21:26

标签: jquery jqgrid

我正在使用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中的一个错误。

有人可以提供一些指导吗?可能是,如何手动关闭对话框?

3 个答案:

答案 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">&times;</a>
 <br>
   <table id="accountIdSearch" style="font-size: 11px"></table>
        <div id="pagingDivId" style="height: 50px;">
        </div>
</div>
</div>