2014-12-11 83 views
1

有沒有人有jqgrid'editGridRow'窗體自動縮小的經驗。 我已經使用'editGridRow'來添加和編輯網站上的列,它很好地顯示。但是,我發現了一些不可思議的事情。如果同時點擊交替添加和編輯導航按鈕,網格形式會自動減少。 下面是我的代碼的一部分。jqgrid |自動降低編輯/添加網格的高度

.jqGrid("navButtonAdd", pager_selector, { 
        caption: 'Add', 
        buttonicon: 'icon-pencil gray', 
        onClickButton: function() { 
         jQuery(grid_selector).jqGrid('editGridRow',"new",{ 
          addCaption : "Add Blacklist Card", 
          width : 450, 
          //resize : true, 
          reloadAfterSubmit:true, 
          closeAfterAdd:true, 
          closeAfterEdit: true, 
          beforeInitData:setAddInit('add'), 
          beforeShowForm : function(form){ 
           /*//방법1 
           $.get('/jqGrid/getblistcardList/?m_type=blist', function(data,status){ 
            var $grid = $('#CARD_NUMBER').val(data); 
           }); 
           // var $grid = $('#CORPORATE_ID').val('as3fi8811sd');*/ 
          }, 
          afterSubmit: function(res, data) { 
           setEnd('add'); 
           //alert('data : '+data); 
           if(res.responseText == "success") { 
            //alert('저장 되었습니다.'); 
           } else { 
            //alert('저장에 실패했습니다.'); 
           } 
           return ['success','message','new_id']; 
          } 
         }); 
        }, 
        position:"last", 
        title : "Add Blacklist Card" 
       }) 
       .jqGrid("navButtonAdd", pager_selector, { 
        caption: 'Edit', 
        buttonicon: 'icon-edit blue', 
        onClickButton: function() { 
         //alert('Editing Row'); 
         var gr = jQuery(grid_selector).jqGrid('getGridParam','selrow'); 
         if(gr != null) jQuery(grid_selector).jqGrid('editGridRow',gr,{ 
          editCaption : "Edit Blacklist Card", 
          width : 450, 
          reloadAfterSubmit:true, 
          closeAfterEdit: true, 
          beforeInitData:setAddInit('edit'), 
          beforeShowForm: setEditeForm, 
          afterSubmit: function(res, data) { 
           setEnd('edit'); 
           if(res.responseText == "success") { 
            //alert('Edit Completely'); 
           } else { 
            // alert('Edit Fail'); 
           } 
           return ['success','message','new_id']; 
          } 
         }); 
         else alert("Please Select Row"); 
        }, 
        position:"last", 
        title : "Edit Blacklist Card" 
       }) 

我想知道height屬性是否基本設置。我怎樣才能解決這個問題? 請讓我知道。謝謝。

回答

0

看來我是jqGrid 4.6中的一個bug。作爲一種變通方法,我建議使用以下onInitializeForm

onInitializeForm: function ($form) { 
    $form.css({height: "auto"}); 
    $form.closest(".ui-jqdialog").css({height: "auto"}); 
} 

看到the demo

以同樣的方式,你可以同時設置heightwidth"auto"

$.extend(true, $.jgrid.edit, { 
    beforeInitData: function() { 
     $("#editmod" + this.id).remove(); 
    }, 
    onInitializeForm: function ($form) { 
     $form.css({height: "auto", width: "auto"}); 
     $form.closest(".ui-jqdialog").css({height: "auto", width: "auto"}); 
    }, 
    width: "auto" 
}); 

看到one more demo

已更新:該錯誤似乎在jqGrid 4.7中得到修復。請參閱the demo,它使用4.6並重現問題,只需打開編輯表單,關閉它並再次打開它。 The next demo使用我在我的答案建議的修復。 One more demo使用沒有修復,它使用jqGrid 4.7。人們可以看到,上述問題在這裏不存在。

+0

對於遲到的回覆感到抱歉。它工作得很好!非常感謝。 – 2014-12-15 10:47:31

+0

@홍의숙:不客氣! – Oleg 2014-12-15 10:58:45