2013-04-30 24 views
0

因此,我开发了一个动态内联编辑器,允许您在一个单元格中选择数据类型,这会导致另一个单元格的编辑器动态更改为一个合适的单元编辑器, TextBoxEditor。请参阅下面的图像值列编辑器将会更改。YUI Datatable 2.9.0在Windows中使用Chrome将CellEditor动态设置为TextBox编辑器

enter image description here

这适用于所有的操作系​​统和浏览器组合除了 Chrome Windows版。当我改变编辑器使用以下...

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

我从来没有能够在Windows浏览器编辑的单元格时,我改变CellEditor的一个TextBoxEditor

任何想法的人?

回答

0

好吧,我想通了。

其他事件正在对其他事件处理程序开火。我添加了一个调用来停止在其他事件处理程序中冒泡的事件。

YAHOO.util.Event.stop(args[0]); 
相关问题