2016-04-06 20 views
0

私はjqGrid add関数を自分の目的に適応しようとしています。編集モードのボタン、新しい行は、 グリッドに表示されていることをユーザーをクリックするとsaveRow関数がjqGridのeditRow関数を待機する方法

  1. :私は、私は特定の動作を作りたいというnavButtonを持っています。
  2. ユーザータイプのデータを入力して[Enter]をクリックすると、データが サーバーに送信されます。

は今、私のコードは次のようになります。

.navButtonAdd("#${pagerId}", { 
       caption: "${resolveMessage('assign')}", 
       buttonicon: "ui-icon-add", 
       onClickButton: function() { 
       if (assignMode == false){ 
        assignMode = true; 
        $('#${tableId}').jqGrid('addRowData', 0, {}); 
        $('#${tableId}').jqGrid('editRow', 0); 
        $('#${tableId}').jqGrid('saveRow', 0, function(){ assignMode = false; }, "${assignURL}"); 
       } 
       }, 
       position:"last" 
      }) 

私の問題はsaveRow機能がeditRowの終了を待っていないということです。ボタンがすぐにクリックされた後、空のデータがサーバーに送信されます。型付きデータを待つsaveRowの作成方法

+0

バージョンのjqgrid? – Jai

+0

バージョンはjqGrid 5.1.0 –

+0

です。http://www.trirand.com/jqgridwiki/doku.php?id=wiki:inline_editingこれを参照してください。 – Jai

答えて

1

同じ機能を自分で再実装する代わりに、inlineNavを使用することをおすすめします。たとえば、現在のコードでは、追加された行ごとに同じrowid 0が使用されますが、これは非常に悪いです。さらに、editRowに何も追加オプションをつけずに電話をしてから、 の直後にeditRowの直後に電話すると、おそらく間違ったデータで強制的に空行が保存されます。検証中に保存が失敗することがあります。

さらに、市販のGuriddo jqGrid JS(価格はhere参照)ではなく、free jqGridをMITまたはGNU GPLv2ライセンスで無料で使用することをお勧めします。私は2014年の終わり(the postの直後)に無料のjqGridフォークを開発し、すべての公開版、wiki articles、およびその時に投稿したsteckoverflowの回答にまもなく説明されている多くの修正、改善、新機能を実装しました。

関連する問題