2013-10-25 123 views
0

我需要能夠使高級數據網格的一列可編輯,以便我的最終用戶可以右鍵單擊並通過剪貼板將數據從其複製到另一個源。從高級數據網格複製和粘貼

我期待在advanceDataGrid中實現下面的代碼,而不僅僅是一個標準的Datagrid,但由於某種原因,它不起作用,我已經在另一個頁面中實現了它作爲dataGrid,並且工作正常。

import com.jpmc.ctrbs.dashboard.alarms.renderers.NonEditableTextInputEditor; 

if(dataFields[i] == 'EVENT_DESCRIPTION') { 
dataGridColumn.editable = true; 
dataGridColumn.itemEditor = new mx.core.ClassFactory(NonEditableTextInputEditor); 
dataGridColumn.editable = false; 
} 
+0

我想通了,我有錯,如果任何人有嘗試同樣的事情,這是我的代碼中的錯誤是在if(數據域[I] ==「EVENT_DESCRIPTION」){ \t \t \t import com.jpmc.ctrbs.dashboard.alarms.renderers.NonEditableTextInputEditor; if(dataGridColumn.dataField ==「EVENT_DESCRIPTION」){ dataGridColumn.editable = true; dataGridColumn.itemEditor = new mx.core.ClassFactory(NonEditableTextInputEditor); } else { dataGridColumn.editable = false; } – Dye

回答

0

我想通了,我有錯,如果任何人有嘗試同樣的事情,這是我的代碼中的錯誤是在if(數據域[I] ==「EVENT_DESCRIPTION」){

import com.jpmc.ctrbs.dashboard.alarms.renderers.NonEditableTextInputEditor; 

if(dataGridColumn.dataField == "EVENT_DESCRIPTION") { 
dataGridColumn.editable = true; 
dataGridColumn.itemEditor = new mx.core.ClassFactory(NonEditableTextInputEditor); 
} 
else { 
dataGridColumn.editable = false; 
} 

這裏是NonEditableTextInputRender.mxml,允許最終用戶複製文本,但不能以任何其他方式改變它,並且只能爲高級數據網格中的一列。

<?xml version="1.0" encoding="utf-8"?> 
<mx:Canvas xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx" 
    horizontalScrollPolicy="off"> 

<fx:Declarations> 
    <!-- Place non-visual elements (e.g., services, value objects) here --> 
</fx:Declarations> 

<fx:Script> 
    <![CDATA[ 
     import mx.controls.Alert; 
     import mx.events.FlexEvent; 

     [Bindable] 
     public var text:String = ""; 

     override public function set data(value:Object):void { 
      super.data = value; 
      else if(value && value.EVENT_DESCRIPTION) { 
       try { 
        textInput.text = value.EVENT_DESCRIPTION; 
        text = value.EVENT_DESCRIPTION; 
        textInput.selectionBeginIndex = 0; 
        textInput.selectionEndIndex = text.length; 
        textInput.selectRange(0,text.length); 
       }catch(err:Error) { 
       } 
      } 
     } 

     protected function textInput_clickHandler(event:MouseEvent):void 
     { 
      else if(data && data.EVENT_DESCRIPTION) { 
       try { 
        textInput.text = data.EVENT_DESCRIPTION; 
        text = data.EVENT_DESCRIPTION; 
        textInput.selectionBeginIndex = 0; 
        textInput.selectionEndIndex = data.EVENT_DESCRIPTION.toString().length; 
        textInput.selectRange(0,data.EVENT_DESCRIPTION.toString().length); 
       }catch(err:Error) { 
       } 
      } 
     } 



    ]]> 
</fx:Script> 

<mx:TextInput id="textInput" editable="false" doubleClick="textInput_clickHandler(event)" maxChars="1000" /> 
</mx:Canvas>