2012-08-16 86 views
0

我有一個jqGrid,我正在添加一個新行,用戶可以編輯。他們有一個按鈕來保存新的行。我需要在發送之前先到達ajax,以便在通話中提供一些安全性。這與網格的其他幾個場景一起工作,但不是這個。不知道發生了什麼事。jqgrid addRow saveRow beforeSend

這裏是我正在加入新行:

jQuery("#myTable").jqGrid('addRow',{ 
     rowID : "new_row", 
     initdata : {}, 
     position :"first", 
     useDefValues : false, 
     useFormatter : false, 
     addRowParams : {extraparam:{}}); 

,這裏是我的代碼由我保存按鈕執行:

 jQuery("#myTable").jqGrid('saveRow',"new_row", { 
      "url": "{{path('recording_create')}}", 
      "mtype": "POST", 
      "succesfunc": function(response) { 
       return true; 
      } 
     }); 

我想這一點,但是,它沒有被解僱。我認爲這將被稱爲當保存一個行時:

$.extend($.jgrid.defaults,     
       { 
       ajaxRowOptions: { 
        beforeSend: function() { 
         alert('Before Row Send'); // not called 
        } 
        }, 
       } 
      ); 

我也試過這個,但是,我認爲這只是調用窗體編輯?

  $.extend($.jgrid.edit, { 
       ajaxEditOptions: { 
        beforeSend: function (jqXHR, settings) { 
         alert('Before Row Send'); // not called 
}}}); 

有什麼想法?

感謝, 斯科特

回答

2

你可以嘗試使用

$.extend($.jgrid.inlineEdit, { 
    ajaxRowOptions: { 
     beforeSend: function (jqXHR, settings) { 
      alert('Before Row Send'); 
     } 
    } 
}); 

我希望它會工作。

修訂:很抱歉,但正確的代碼

$.extend($.jgrid.defaults, { 
    ajaxRowOptions: { 
     beforeSend: function() { 
      alert('Before Row Send'); 
     } 
    } 
}); 

你已經包括在你的問題的文本。它應該工作。僅在網格創建之前驗證代碼將被執行是很重要的。

+0

@ScottV:我測試和代碼'$ .extend($ jgrid.defaults,{ajaxRowOptions:{beforeSend:函數(){警報( '行之前發送');} }});'做功。內聯編輯代碼的[The line](https://github.com/tonytomov/jqGrid/blob/v4.4.0/js/grid.inlinedit.js#L324)使用'$ tpajaxRowOptions',它是'ajaxRowOptions'參數jqGrid的。可以通過$ .extend($。jgrid.defaults,{ajaxRowOptions:{...}})來設置它;' – Oleg 2012-08-16 19:55:38

+0

好的。如果我將其設置爲網格參數,如ajaxRowOptions:{contentType:「application/json」}, ajaxRowOptions:{ contentType:「application/json」, beforeSend:function(){ debugger; 警報('發送行之前'); } },它的工作原理。但是,如果我嘗試按照你的說法進行延伸,它就不起作用。無論哪種方式,解決方案是使用ajaxRowOptions – 2012-08-16 21:10:27

+1

@ScottV:在調用'$ .extend($。jgrid.defaults,...);''之前可能創建了網格*?我不明白爲什麼'$ .jgrid.defaults'的設置應該被忽略。 – Oleg 2012-08-16 21:15:00

0

奧列格, 感謝您的想法。但是,這並沒有奏效。但是,以下不工作:

$.ajaxSetup({ 
     beforeSend: function (jqXHR, settings) { 
      alert('Before Row Send');    
     }}); 

問題要問你,雖然,你怎麼知道什麼可以擴展您上方延伸的方式嗎?

感謝, 斯科特