2010-01-22 29 views

回答

2

你能更具體嗎?如果你想要自己的模式對話框,你可以添加一個事件處理程序(例如在編輯按鈕上),當被觸發時將打開你自己的自定義對話框。你可以使用jQuery UI對話框來實現這個目的,並且可以打開你自己的自定義表單。

更新 檢查的jqGrid源代碼之後,info_dialog是用於顯示此特定對話的功能。有一個單獨的調用來顯示「正在加載...」彈出窗口。不好意思,似乎沒有一種簡單的方法來禁用info_dialog。但是,您可以修改jqGrid源代碼以完成您所需的任務。你既可以:

  • info_dialog立即返回 - 這可能是極端的,因爲它可以報告你需要其他錯誤 - 或者,

  • 找到和評論指出,正顯示這個特殊的Ajax錯誤呼叫。涉及到一些試驗和錯誤,但只有18個呼叫這個功能,它不會花你很長的時間來追查。事實上,通過註釋掉這種情況下啓動,因爲它是從一個Ajax調用的error函數調用:

    info_dialog(a.jgrid.errors.errcap,e.status+" : "+e.statusText+"<br/>"+u,a.jgrid.edit.bClose);

顯然,這樣的修改是不得已而爲之,但一旦它的工作原理,你可能考慮爲jqGrid團隊滾動補丁以禁用警報。

+0

的jqGrid使用警報默認彈出,這就是我想刪除 – yretuta

+0

你的意思是說,「加載」,例如一個什麼呢? –

+0

是的。以及每當服務器請求失敗時出現的那個(我成功捕獲了ajaxError事件並設置了我的自定義消息,但也出現模態對話框,其中顯示錯誤:500和相應的消息 – yretuta

0

搜索div.loadingui div.msgbox {...}某處在css文件中。我認爲編輯這個CSS類將完成這項工作。

0

我已經改變了運行模式彈出的z-index的,一旦你可以訪問到它,你可以做任何定製

editoptions: { size: 20, maxlength: 10, 

          dataEvents: [ 
          { type: 'keypress', 
           fn: function (e) { 
            if (e.keyCode == 13) { 
             **$("#info_dialog").css('z-index', '100000');** 
            } 
           } 
          } 
         ] 


         } } 

此外,如果你能做到這一點的另一個地方,如果你有服務器響應,作爲錯誤

onCellSelect: function (rowid, iCol, aData) { 
        currentRow = rowid; 
        if (rowid && rowid !== lastsel) { 
         if (lastsel) jQuery('#ppGrid').jqGrid('restoreRow', lastsel); 
         $("#ppGrid").jqGrid('editRow', rowid, true, null, null, null, {}, reload,OnError); 
         lastsel = rowid; 
        } 
        else if (rowid && rowid === lastsel) 
        { $("#ppGrid").jqGrid('editRow', rowid, true, null, null, null, {}, reload,OnError); } 


       } 
0

是的,你可以做到這一點。您可以將可見屬性設置爲模態框的錯誤[$("#info_dialog").visible(false);],並且您可以調用您自定義的模態框。

editrules: { custom: true, custom_func: validate_edit } 


function validate_edit(posdata, colName) { 
      var message = ""; 
      if (posdata != '' && $.isNumeric(posdata)) 
       return [true, ""]; 

      if (posdata == '') 
       message = colName + " field is required" 
      if (!$.isNumeric(posdata)) 
       message = posdata + " is not a number"; 

      alert(message); 

      $("#info_dialog").visible(false); 

      return [false, ""]; 
     }