2012-02-01 31 views
0

editabletextareaを編集したときに編集された行を追跡する方法をjqgridにすることができます。編集可能なフィールドが編集されているか確認するjqgrid

beforeSelectRow: function (rowid) { 
    alert('rowid=' + rowid); 
} 

一つの発言あなたのコードに:

$("#accJqgrid").jqGrid({ 
    url: path, 
    postData: { deviceId: deviceId, loadId: 'Hardware' }, 
    datatype: 'json', 
    mtype: 'POST', 
    width: 650, 
    height: 150, 
    colNames: ['', 'ID', '', '', 'Description', '', '', 'Comments', 'Delete'], 
    autowidth: true, 
    colModel: [ 
     { name: 'state', width: 30, sortable: false, hidden: true }, 
     { name: 'ID', width: 30, sortable: false, hidden: true }, 
     { name: 'catalogId', width: 30, sortable: false, hidden: true }, 
     { name: 'Save', width: 30, sortable: false, formatter: saveAccessoryData }, 
     { name: 'Description', width: 250, sortable: false }, 
     { name: 'Search', width: 30, sortable: false, formatter: searchAccessory }, 
     { name: 'License', width: 0, sortable: false, hidden: true }, 
     { name: 'Comments', width: 380, sortable: false, edittype: 'textarea', editable: true, editoptions: { rows: "2", cols: "73", dataInit: function (elem) { $(elem).attr("maxlength", "250"); } } }, 
     { name: 'Delete', width: 50, sortable: false, edittype: 'checkbox', formatter: 'checkbox', editable: true, align: 'center', classes: 'deleteBackgroundColor' } 
    ], 
    rowNum: 50, 
    pagination: true, 
    rowList: [25, 50, 100], 
    pager: $('#accJqgridpager'), 
    gridComplete: function() { 
     } 
    }, 
    afterInsertRow: function (id, data) { 
     jQuery('#accJqgrid').jqGrid('editRow', id); 
    } 
}); 

enter image description here

+0

それはjqGridについての私は疑問に思えます。テキストエリアのコントロールだけで、キャレットの動きを追跡したいと思っています。たとえば、[here](http://stackoverflow.com/a/263796/315935)を参照してください。それはあなたが必要とするものですか? – Oleg

+0

いいえ、どのテーブル行が編集されているかはわかりません。それはテキストエリアなので、編集されているかどうかはわかりません。 – Nipuna

+0

私はまだあなたの質問を理解していません。まず、どの編集モード(インライン編集、フォーム編集、セル編集)を使用するのかを知ることは重要ですか? 'multiselect:true'を使っているのですか?あなたが使っているjqGridを投稿する方が良いです。 – Oleg

答えて

0

あなたは、現在の編集行をトレースするbeforeSelectRowコールバックを使用することができます私は、あなたがの充填を行いafterInsertRowを使用することはありません勧めjqGridをゆっくりと実行します。その代わりに、あなたはgridview: trueオプションを追加し、editRowloadCompleteの内部またはgridComplete呼び出すことができます。

loadComplete: function() { 
    var $myGrid = $(this); 
    $myGrid.find('>tbody>tr.jqgrow').each(function() { 
     $myGrid.jqGrid('editRow', this.id); 
    }); 
} 
+0

グリッドを送信する前に、どのセルに編集が保存されているかをどのように知ることができますか?今は、ユーザーがまだ編集モードになっているときに、ドロップダウンのHTMLコードをすべて取得していますが、保存ボタンをクリックしてjqgridを送信します。 –

+0

@ b.g: 'getGridParam'を使って' savedRow'パラメータを取得できます。パラメータには要素の配列が含まれます。すべての要素は現在編集中の行に対応します。 'savedRow'の要素の正確な形式は、使用するjqGridのバージョンと編集モード(セル編集またはインライン編集)によって異なります。 'savedRow'を使って現在編集中の行を検出できます。 – Oleg

関連する問題