Apache flex 设置';财产';关于验证器

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

我在数据网格的列中的每个单元格上使用NumberValidator。源设置为datagrid的dataProvider,但属性是问题所在。我不能只说“text”,因为我使用labelFunction检索属性,因为它嵌套在另一个对象中

有什么办法可以解决这个问题吗?我是否需要创建自己的自定义验证器?我希望不是。任何提示都将不胜感激

谢谢

<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的。如果我发布了这个问题/试图解决这个问题,我会构建一个小型测试应用程序(排除任何其他原因,如果你发布了一个小型应用程序代码,人们会自己运行并尝试)