在单元格编辑中,有什么方法可以在编辑单元格时更改其编辑类型(如果满足某些条件)?
假设我有一个 colModel,它有一个字段“Description”,默认情况下将被视为输入。当我单击以在该单元格中进行编辑时,输入将与当前单元格值一起出现。现在,如果满足某些条件,我希望当用户单击该单元格进行编辑时,而不是输入一个选择出现。
我已经尝试使用 setColProp 并同时更改了 edittype 和 editoptions,但要么我没有在正确的地方这样做(我在 beforeCellEdit 事件中这样做了),要么它不起作用。
谢谢。
更新:
我已尝试使用您提出的策略,但在调用该方法后,我的单元格仍显示输入: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 变量。我在帖子中更正了这一点,以记录我如何解决这个问题,如果其他人需要它。
谢谢。