1

行を編集および削除するためのフォーマッタ アクションを備えたテーブルがあります。

削除アクションでは、開いたダイアログに削除する行のIDを持つメッセージを表示したいと考えています。だから beforeShowForm イベントで私はIDを取得します:

beforeShowForm: function (form) {

     var rowid= $("#lista_operaciones").jqGrid('getGridParam','selrow');
     $("td.delmsg", form[0]).html(sprintf(mensaje_borrado, rowid));
},

選択した行の削除ボタンをクリックしても問題はありませんが、選択されていない他の行の削除ボタンをクリックすると、選択した行のIDが取得されます。

ここに画像の説明を入力

たとえば、最後の行が選択されています。2 行目の削除ボタンをクリックすると、最後の行の ID が取得されます。

どうすれば正しいIDを取得できますか?

4

4 に答える 4

1

削除ダイアログの非表示フィールドを使用することをお勧めしますid="DelData"。削除される行の ID を持つ<tr>1 つのセル ( ) を持つ行 ( ) です。<td>フィールドの使用はselrow、グリッドのオプションを使用するほど安全です。

コード例については、回答を参照してください。使用法multiselect: trueオプションの場合、セルの内容は、削除される行の ID のカンマ区切りのリストになります。

于 2013-01-24T12:57:40.853 に答える
0

クリックされた [削除] ボタンに関連する行の ID を見つける必要があり、beforeShowForm: function.

<tr>問題の値が要素の id であると仮定すると、式は次のようになります。

$(tableSelector).on('click', 'deleteButtonSelector', function() {
    var rowid= $(this).closest('tr').attr('id');
    //do something here to make rowid available to the beforeShowForm function
});

ID の保存方法が異なる場合は、式を調整する必要があります。

于 2013-01-24T12:48:01.000 に答える
0

あなたのコードはまさにそれがすべきことをしています...あなたは選択した行を

.jqGrid('getGridParam','selrow');

あなたの質問を正しく読んだ場合、既存の削除確認ダイアログにデータを追加しようとしています。この場合は行 ID です。

おそらく最善の方法は、同じごみ箱アイコンを使用して独自のカスタム ボタンを追加し、その onClick イベントに応答してから、作成するカスタムの削除確認フォームにデータを追加することです。

行 ID を使用した追加のメッセージボックス/アラートが必要な場合は、次のようなものを使用できます

delOptions: {onclickSubmit: function(rp_ge, rowid) {alert('RowID: ' + rowid)}}
于 2013-01-24T12:54:28.987 に答える
0
var sr = jQuery("#list2").getGridParam('selrow');
rowdata = jQuery("#list2").getRowData(sr);
于 2015-05-04T07:43:15.027 に答える