jqgrid addRow saveRow beforeSend

时间:2012-08-16 15:52:37

标签: jquery ajax jqgrid jqgrid-inlinenav

我有一个jqGrid,我正在添加一个用户可以编辑的新行。他们有一个按钮来保存新行。我需要在发送之前找到ajax来为调用填充一些安全性。这与网格的其他几种情况有关,但不是这个。不知道发生了什么。

以下是我添加新行的方法:

  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 个答案:

答案 0 :(得分:2)

您可以尝试使用

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

我希望它能奏效。

更新:抱歉,但代码正确

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

您已经包含在问题文本中。它应该工作。重要的只是在创建网格之前验证代码是否将被执行

答案 1 :(得分:0)

奥列格, 谢谢你的想法。但是,这没有用。但是,以下方法确实有效:

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

问题,你怎么知道 可以 扩展到你扩展的方式?

谢谢, 斯科特