YUI Datatable 2.9.0使用Chrome在Windows中动态设置CellEditor到TextBox Editor

时间:2013-04-30 18:03:29

标签: javascript windows google-chrome yui

所以我开发了一个动态内联编辑器,允许您在一个单元格中选择数据类型,这会导致另一个单元格的编辑器动态更改为适当的单元格编辑器,例如TextBoxEditor。请参阅下面的图片,值列编辑器将更改。

enter image description here

这适用于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中编辑单元格..

enter image description here

当我将CellEditor更改为TextBoxEditor时,我无法在Windows Chrome中编辑单元格

任何想法的人?

1 个答案:

答案 0 :(得分:0)

好的,所以我想出来了。

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

YAHOO.util.Event.stop(args[0]);