0

我有一个 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
}}});

有什么想法吗?

谢谢,斯科特

4

2 回答 2

2

你可以尝试使用

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

我希望它会奏效。

更新:对不起,但正确的代码

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

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

于 2012-08-16T17:24:35.397 回答
0

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

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

不过,问你一个问题,你怎么知道可以按照你上面扩展的方式扩展什么?

谢谢,斯科特

于 2012-08-16T17:33:10.387 回答