Apache flex 设置';财产';关于验证器
我在数据网格的列中的每个单元格上使用NumberValidator。源设置为datagrid的dataProvider,但属性是问题所在。我不能只说“text”,因为我使用labelFunction检索属性,因为它嵌套在另一个对象中 有什么办法可以解决这个问题吗?我是否需要创建自己的自定义验证器?我希望不是。任何提示都将不胜感激 谢谢Apache flex 设置';财产';关于验证器,apache-flex,actionscript-3,flex3,flex4,Apache Flex,Actionscript 3,Flex3,Flex4,我在数据网格的列中的每个单元格上使用NumberValidator。源设置为datagrid的dataProvider,但属性是问题所在。我不能只说“text”,因为我使用labelFunction检索属性,因为它嵌套在另一个对象中 有什么办法可以解决这个问题吗?我是否需要创建自己的自定义验证器?我希望不是。任何提示都将不胜感激 谢谢 <mx:NumberValidator source="{this.secId_dg.dataProvider}" lowerTh
<mx:NumberValidator
source="{this.secId_dg.dataProvider}" lowerThanMinError="A locate is required."
property="marketRule.locRule.locRuleId" minValue="0" />
<mx:DataGrid
editable="true"
width="100%"
rowCount="10"
tabEnabled="false">
<mx:columns>
<mx:DataGridColumn
editorDataField="text"
editable="true">
<mx:itemEditor>
<mx:Component>
</mx:Component>
</mx:itemEditor>
</mx:DataGridColumn>
<mx:DataGridColumn
headerText="Description"
dataField="description"
width="200"
editable="false"/>
<mx:DataGridColumn
headerText="Locate"
headerStyleName="leftGridHeader"
paddingRight="4"
textAlign="right"
labelFunction="getLocate"
editable="true"
dataField="locRuleDesc"
editorDataField="selectedLabel"
/>
<mx:DataGridColumn
headerText="Comments"
width="200"
editable="true"/>
<mx:DataGridColumn
headerText="Delete"
editable="false"
DeleteIconRenderer"/>
</mx:columns>
</mx:DataGrid>
这里的解决方案是使用源
和属性
值的正确组合。你在正确的轨道上
对于source
属性,文档中说明:
此属性支持点分隔字符串以指定嵌套属性
因此,在您的情况下,您可能希望将源
属性字符串变长一点,这可以延伸到包含要验证的属性的项中。也许:
source="this.secId_dg.selectedItem.marketRule.locRule"
那么您要验证的属性就是:
property="locRuleId"
很抱歉,添加注释时代码编辑器无法正常工作。无论如何,上面是我尝试使用的验证器。显然,“property”值不正确,但我只是想说明我要验证的是“locRuleId”,这是locRule对象的一部分,它是marketRule对象的一部分。呃,编辑您的原始帖子,也许?并添加更多代码,而不仅仅是数字验证器。我想看看你是如何设置你的datagrid的。如果我发布了这个问题/试图解决这个问题,我会构建一个小型测试应用程序(排除任何其他原因,如果你发布了一个小型应用程序代码,人们会自己运行并尝试)