2013-04-30 45 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]); 
相關問題