所以我开发了一个动态内联编辑器,允许您在一个单元格中选择数据类型,这会导致另一个单元格的编辑器动态更改为适当的单元格编辑器,例如TextBoxEditor。请参阅下面的图片,值列编辑器将更改。
这适用于Windows上的每个操作系统和浏览器组合 Chrome。当我使用以下内容更改编辑器时...
column.editor = new YAHOO.widget.TextboxCellEditor({disableBtns:true});
Windows上的Chrome不会改变。但是,如果我将编辑器更改为YAHOO.widget.RadioCellEditor,它确实有效。
我的完整代码段供参考。
var target = YAHOO.util.Event.getTarget(ev);
var column = myDataTable.getColumn(target);
var record = myDataTable.getRecord(target);
var editable = record.getData("mapEditable");
var configType = "null";
if (column.key == "mapDelete") {
if (configType == "default") {
return;
}
if (editable == "EditAll") {
myDataTable.deleteRow(target);
var len = myDataTable.getRecordSet().getLength();
if (len == 0) {
myDataTable.addRow( {mapDataType:"Text", mapKey:" ", mapValue:" ", mapDelete:" ", mapEditable:"EditAll"} );
}
parent.enableOkBtnFromIframe(configType);
}
}
if (column.key == "mapValue") {
record.setData("mapStartValidation","true");
var dataType = record.getData("mapDataType");
switch(dataType) {
case "Text":
case "Integer":
case "Float":
column.editor = new YAHOO.widget.TextboxCellEditor({disableBtns:true});
break;
case "Boolean":
column.editor = new YAHOO.widget.RadioCellEditor({radioOptions:["true","false"],disableBtns:true});
break;
default:
break;
}
myDataTable.showCellEditor(target);
图片 - 无法在Windows Chrome中编辑单元格..
当我将CellEditor更改为TextBoxEditor时,我无法在Windows Chrome中编辑单元格
任何想法的人?
答案 0 :(得分:0)
好的,所以我想出来了。
其他事件正在另一个事件处理程序上触发。我添加了一个调用来阻止事件在我的其他事件处理程序中冒泡。
YAHOO.util.Event.stop(args[0]);