Adobe Flex:尝试验证datagrid输入时出现错误#1034

时间:2011-11-25 06:42:22

标签: flex datagrid adobe textinput type-coercion

尝试验证数据网格中的输入,我正在使用一个函数(取自Adobe示例)。

这是网格的方式:

<mx:DataGrid id="CashGrid" dataProvider="{cash}" editable="true" itemEditBeginning="allowForEdit(event)"  itemEditEnd="formatData(event);" sortableColumns="false">  
 <mx:columns>  
     <mx:DataGridColumn textAlign="left" dataField="curName" headerText="Currency" />  
     <mx:DataGridColumn textAlign="right" dataField="value" headerText="Value"  width="150">  
 </mx:columns>  
</mx:DataGrid>  

这是AS部分的功能

  public function formatData(event:DataGridEvent):void
  {
     if (event.reason == DataGridEventReason.CANCELLED)
     {
      // Do not update cell.
      return;
     }            

     var newData:String= TextInput(event.currentTarget.itemEditorInstance).text;

     // Determine if the new value is an empty String. 
     if(newData == "")
               {
                        event.preventDefault();
                        TextInput(cashGrid.itemEditorInstance).errorString=
                            "Enter a valid string.";
                        return;
               }
  } 

虽然它在源示例中有效,但在我的示例中,在编辑所述网格时,会弹出一个错误说明 TypeError: Error #1034: Type Coercion failed: cannot convert mx.controls::TextInput@f093c29 to spark.components.TextInput.

尝试

import mx.controls.TextInput;  

告诉我

Can not resolve a multiname reference unambiguously. spark.components.TextInput.

我想这些命名空间有些混乱,但我不知道如何使这个工作 救命!

由于

1 个答案:

答案 0 :(得分:0)

我无法使用给定的代码重现错误。我的工作正常。请将allowForEdit(event)的代码发送给我。

您使用的是哪个SDK版本? 什么是根应用程序命名空间?请粘贴整个应用程序命名空间。