0

所以我开发了一个动态内联编辑器,它允许您在一个单元格中选择一种数据类型,这会导致另一个单元格的编辑器动态更改为适当的单元格编辑器,例如 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 中编辑单元格

有什么想法吗?

4

1 回答 1

0

好的,所以我想通了。

其他事件在其他事件处理程序上触发。我添加了一个调用来停止我的其他事件处理程序中的事件冒泡。

YAHOO.util.Event.stop(args[0]);
于 2013-04-30T21:25:51.527 回答