2016-07-15 5 views
0

前のpostの解決策を実行した後、extraparamsが存在する場合、successfuncを使用してinlineNavを追加/編集した後でjqGridをリフレッシュできません。私はeditOptionsが置かれている場所の異なる組み合わせを試してみましたinlineNavリフレッシュを使用したjqGridは、extraparamsを使用していません

var editOptions = {  
keys: true, 
successfunc: function() { 
    alert('success'); 
    var $self = $(this); 
    setTimeout(function() { 
     alert('refreshing'); 
     $self.setGridParam({ datatype: 'json' }); 
     $self.trigger("reloadGrid"); 
    }, 500); 
} 


.jqGrid('inlineNav', { 
       addParams: { 
        useDefValues: true, 
        addRowParams: 
        { 
         editOptions, 
         extraparam: { 
           userId: function() { 
            return currentUserId; 
           }, 
           companyId: function() { 
            return currentCompanyId; 
           } 
         } 
        }       
       }, 
       editParams: { 
        editOptions 
       } 

、ない運:

は、ここに私のコードです。

答えて

2

extraparamを間違った場所に配置しました。 editOptionsのプロパティである必要があります。

更新日:

var reloadGridFunc = function() { 
    alert('success'); 
    var $self = $(this); 
    setTimeout(function() { 
     alert('refreshing'); 
     $self.setGridParam({ datatype: 'json' }); 
     $self.trigger("reloadGrid"); 
    }, 500); 
}; 


.jqGrid('inlineNav', { 
      addParams: { 
       useDefValues: true, 
       addRowParams: { 
        // here are editOption used for Add 
        keys: true, 
        successfunc: reloadGridFunc, 
        extraparam: { 
          userId: function() { 
           return currentUserId; 
          }, 
          companyId: function() { 
           return currentCompanyId; 
          } 
        } 
       }       
      }, 
      editParams: { 
       // here are editOption used for Edit 
       keys: true, 
       successfunc: reloadGridFunc 
      } 
     }); 
+0

追加パラメータを追加パラメータセクションに追加する必要があると私は理解しました。私は、これらの余分なパラメータがadd関数にのみ必要です。 –

+0

@ジェリーP:はい、しかし、あなたが使用する 'addParams:{addRowParams:{editOptions、extraparam:{...}}}'は**間違った**です。 'addParams:{addRowParams:editOptions}'は正しく、 'addParams:{addRowParams:{keys:true、extraparam:{...}、successfunc:function(){...}}}'も正しいでしょう。 'addParams'の値は' addRow'関数のパラメータのように** object **でなければなりません([here](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing#addrowを参照) )。オブジェクトは 'addRowParams'プロパティを持つことができます。 'addRowParams'プロパティの値は' editRow'のオプションで** object **でなければなりません。 – Oleg

+0

@JerryP: 'editRow'のオプションはdescribe [here](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editing#editrow)です。 '{editOptions、extraparam:{...}}'という構文はすでに間違っています。ここで 'editOptions'とは何ですか?正しい構文は '{property1Name:property1Value、property2Name:property2Value、...}'でなければなりません。 – Oleg

0

[OK]を - 私は私が間違って何をしていたかが分かりました。実際は上記の私のコードの両方の部分にありました。まず、私が変更されました:私はキーとその内部successfuncパラメータを含んするvar editOptions、処分した

function successFunc() { 
var $self = $(this); 
setTimeout(function() {   
    $self.setGridParam({ datatype: 'json' }); 
    $self.trigger("reloadGrid"); 
}, 500);} 

。これは明らかにinlineNavメソッドのaddParams部分のsuccessfunc呼び出しと競合していました。だからここパラメータセクションが今のようになります:私はどちらかのインラインレコードを追加または編集するときsuccessfuncが呼び出されたときに

.jqGrid('inlineNav', { 
       addParams: { 
        addRowParams: 
        { 
         keys: true, 
         extraparam: 
         { userId: currentUserId, 
          companyId: currentCompanyId 
         }, 
         successfunc: successFunc 
        } 
       }, 
       editParams: { 
        successfunc: successFunc 
       } 
      }); 

だから今、リフレッシュが起こります。これが将来他の人に役立つことを願っています。この初期のヘルプのための@Olegに感謝します。

関連する問題