尝试验证数据网格中的输入,我使用了一个函数(取自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.
我猜名称空间有些混乱,但我不知道如何使其工作。
的帮助!
谢谢
我无法用给定的代码重现错误。我这边工作得很好。请把allowForEdit(event)
的代码也发给我。
您使用的是哪个SDK版本?根应用程序名称空间是什么?请粘贴整个应用程序名称空间