jqgrid - закрыть диалог формы - PullRequest
3 голосов
/ 31 января 2012

Я использую 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 ]

7 голосов
/ 14 ноября 2012

в соответствии с документацией, синтаксис afterSubmit :

afterSubmit : function(response, postdata) 
{ 
 … 
return [success,message,new_id] 
} 

в противном случае IE8 выдаст ошибку, даже если данные успешно опубликованы.

вы можете использовать:

return [true,'',''];

then closeAfterAdd: true и closeAfterEdit: true будут работать без необходимости программного закрытия формы:

$('#cData').trigger('click');
3 голосов
/ 01 февраля 2012

Хорошо, так что это логично, просто вызвать событие click кнопки закрытия диалога, как это.Вы найдете идентификатор тега span, используя огненную ошибку.

                  $('#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');
                                }
                            },
                            {},{},{}      
                    );  

Надеюсь, кто-то выиграет от этого.

0 голосов
/ 27 декабря 2016

Вы можете сделать это с помощью 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...