我有一个包含两列的数据网格。数据类型和值。数据类型有一个组合框,其中包含char,int,unsigned int,signed int等选项。现在我想验证value列中输入的值。我正在使用以下方法。
<mx:DataGridColumn headerText="Value"
dataField="Values"
width="100"
editable="{!this.areVariablesReadOnly}">
<mx:itemEditor> <mx:Component> <mx:TextInput restrict="0-9" maxChars="3" /> </mx:Component> </mx:itemEditor>
</mx:DataGridColumn>
这仅对int值验证值列的字段。现在,如果选择了char,我需要使用不同的itemEditor以不同的方式进行验证。 简而言之,
if (int)
use ItemEditor1
else if (char)
use ItemEditor2
else if (condition)
use Itemeditor3.
有人能指出我正确的方向吗?
答案 0 :(得分:0)
data
属性(以及dataChange
事件)将让您的生活更轻松。
例如,
(假设您的数据类型字段为type
)
在您的MXML中:
<mx:itemEditor>
<fx:Component>
<local:ValueInput type="{data.type}"/>
</fx:Component>
</mx:itemEditor>
ValueInput.as:
package
{
import mx.controls.TextInput;
public class ValueInput extends TextInput
{
public function set type(value:String):void
{
switch (value)
{
case "char":
restrict = null;
break;
case "int":
restrict = "0-9";
break;
case "hex":
restrict = "0-9A-F";
break;
}
}
}
}
然而,我不能说这是“正确的方向”。这只是一种方式。可以有许多其他创造性方法,它还取决于开发人员的编码风格。
你想要做的也是一个很好的方式。实现MX组件只需要更长的时间。
希望这有帮助。