セル編集で、編集中にセルの編集タイプを変更する方法はありますか(特定の条件が満たされている場合)?
「説明」フィールドを持つcolModelがあり、デフォルトで入力として扱われるとします。クリックしてそのセルを編集すると、入力が現在のセル値で表示されます。ここで、特定の条件が満たされた場合、ユーザーがそのセルをクリックして編集するときに、入力の代わりに選択が表示されるようにしたいと思います。
setColPropを使用して、edittypeとeditoptionsの両方を変更しようとしましたが、適切な場所で変更していないか(beforeCellEditイベントで変更しました)、そのように機能しません。
ありがとう。
UPD:
あなたが提案した戦略を使おうとしましたが、メソッドを呼び出した後もセルに入力が表示されます。setColProp
var originalEditCell = $.fn.jqGrid.editCell;
$.jgrid.extend({
editCell: function (iRow, iCol, isStartEditing) {
if (iCol === 4 && classEditMode) {
$(this).jqGrid('setColProp', "ColName4", { edittype: "text" });
var cell = $(this).find('tr:eq(' + iRow + ')').find('td[aria-describedby="gridFix_Description"]');
cell.find('select').remove();
cell.append($('<input />').attr('id', iRow + '_Description')
.attr('name', 'Description')
.attr('role', 'textbox')
.width('98%')
.text(""));
}
return originalEditCell.call(this, iRow, iCol, isStartEditing);
}
});
グリッドは引き続き選択を生成します。なぜですか?
ありがとう
UPD2
申し訳ありませんが、setColPropメソッドにcolnameの正しい変数を含めるのを忘れていました。他の誰かがそれを必要とする場合に私がこの問題をどのように解決したかを記録するために、私は投稿でそれを修正しました。
ありがとう。