在 DataGrid 中使用验证器 - Flex
Posted
技术标签:
【中文标题】在 DataGrid 中使用验证器 - Flex【英文标题】:Using validators in DataGrid - Flex 【发布时间】:2010-12-23 14:17:26 【问题描述】:我有一个可编辑的 DataGrid,类似于:
<mx:Datagrid editable="true" dataProvider="arrayListPreferences" id="preferencesGrid">
<mx:columns>
<mx:DataGridColumn header="col1" dataField="preference" editable="false"/>
<mx:DataGridColumn header="col2" dataField="value" editable="true"/>
</mx:columns>
</mx:Datagrid>
当用户编辑数据时,他点击一个按钮并调用一个将数据保存到数据库的函数,在这个函数中,我必须在发送数据之前验证数据。我想使用简单的验证器(NumberValidator、StringValidator 等),但我不知道如何将此验证器的源设置为第二列中的指定行。
【问题讨论】:
【参考方案1】:<mx:DataGridColumn editable="true" itemRenderer="MyTextInputItemRenderer"/>
public class MyTextInputItemRenderer extends TextInput
private var validator:StringValidator;
public function MyTextInputItemRenderer()
validator = new StringValidator;
validator.minLength=0;
validator.property = "text";
validator.source = this;
override public function set data(value:Object):void
super.data = value;
validator.validate();
【讨论】:
【参考方案2】:<mx:NumberValidator source="preferencesGrid.selectedItem" property="value"
integerError="Enter Integer value"
minValue="18" maxValue="50" domain="int"
trigger="saveButton" triggerEvent="click"
valid="saveData();"/>
将验证器的property
设置为所需列的dataField
。
【讨论】:
对,工作正常,但我怎样才能将源设置为所需的列而不是使用 preferencesGrid.selectedItem?谢谢以上是关于在 DataGrid 中使用验证器 - Flex的主要内容,如果未能解决你的问题,请参考以下文章
Flex 4.5 (Hero) s:Datagrid RowCount
如何在 Flex 中控制 Spark Datagrid 的滚动条位置?
如何使用mx Prints DataGrid打印flex spark datagrid?或者是否有其他方法可以在不使用mx Prints DataGrid的情况下实现此目的?