2017-02-08 10 views
0

jqGridでインライン編集、挿入、削除しようとしていますが、削除はできません。私は 'clientArray'の使い方について読んでいますが、私が編集のために言いましたが、削除のためのトリックはしません。 delete関数が呼び出されると、削除のメッセージがポップしますが、deleteをクリックすると、「No url is set」というメッセージが表示されます。jqグリッドインライン削除

私は間違っていますか?これらは、適切なボタンをクリックすると呼び出される関数です。

function _deleteLine(rowId) { 
    var id = rowId; 
    if (_.isNumber(id) === false) { 
     id = rowId.id; 
    } 

    self.$grid.delGridRow(id, false, 'clientArray'); 
} 

function _editLine(rowId) { 
    var id = rowId; 
    if (_.isNumber(id) === false) { 
     id = rowId.id; 
    } 
    self.$grid.jqGrid("editRow", id, true); 
    _toggleActionButtons(true, id); 
} 

function _saveLine(rowId) { 
    var defer = $.Deferred(); 

    var id = rowId; 
    if (_.isNumber(id) === false) { 
     id = rowId.id; 
    } 
    self.$grid.saveRow(id, false, 'clientArray'); 
    toggleActionButtons(false, id); 
    return defer.promise(); 
} 

更新:

次に削除機能を変更した後、私は閉じないmodalに、しかし、項目を削除することができました。私はこれを見て、それに従ったが解決することができませんでした:

function _deleteLine(rowId){ 
options.processing = true; 
      var grid_id = $.jgrid.jqID(this.p.id); 
      self.$grid.jqGrid("delRowData", rowid); 
      $.jgrid.hideModal("#delhd" + grid_id, { 
       gb: "#gbox_" + grid_id, 
       jqm: true 
      }); 
} 
+0

商用の[Guriddo jqGrid JS](http://www.jqGrid.com)のjqGrid([free jqGrid](https://github.com/free-jqgrid/jqGrid) /guriddo.net/?page_id=103334)またはバージョン<= 4.7の古いjqGrid?なぜjqGrid( 'delGridRow'、' editRow'、 'saveRow')のすべてのメソッドにラッパーを書く必要があるのか​​分かりません。現在のバージョンの無料のjqGridを使用する場合は、 'toggleActionButtons'と' _toggleActionButtons'の呼び出しも不要になると思います。 – Oleg

+0

あなたは私のコースのバージョンを聞くのは正しいです.... 4.6.0 –

答えて

1

jqGrid 4.6は3つの賛否古いです。それはローカルデータのためにdelGridRowをサポートしない最後のバージョンでした。何年も前、私はthe workaroundを投稿しました。これは、ローカルグリッドの行を削除するためにフォーム編集の方法をどのように使用できるかを記述しています。後でanother answerを投稿しました。これはローカル行の編集に他のフォーム編集方法を使用する方法を示しています。

一般的には、free jqGridの最新バージョン(4.13.6)、jqGridのフォークを2014年末から開発することをお勧めします。無料のjqGridはjqGrid 4.6と互換性がありますが、多くの新機能でjqGridの使用を簡素化します。たとえば、formatter: "actions",inlineNavを使用してeditRowと直接電話することができます。すべてのボタン(インラインアクションボタンとナビゲータメニューのボタン)は、編集の開始/終了後に自動的に表示/非表示または有効/無効になります。ボタンを表示/非表示にするための追加の呼び出しは必要ありません。たとえば、the demoを試してください。

+0

お返事ありがとうございますOleg。あなたの投稿を見て、私の機能を更新しました。あなたが以前に解決したのと同じような問題があります。私はそれを削除することができますが、モーダルには消えません。私は間違って何をしていますか?私は "delhd" + gridIdを使用しました。これは要素idであることがわかりました。 –

+0

はい、それを "delmod"に変更するとそのトリックが実行されました。ありがとう! –

+0

@RotemB:ようこそ! – Oleg