在验证器上设置‘Property’

u91tlkcl  于 2022-09-21  发布在  Apache
关注(0)|答案(1)|浏览(134)

我正在对数据网格的列中的每个单元格使用NumberValidator。源被设置为数据网格的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>
x8diyxa7

x8diyxa71#

这里的解决方案是使用sourceproperty值的适当组合。你走上了正确的道路。

对于source属性,文档说明如下:
此属性支持用点分隔的字符串指定嵌套属性。

因此,在您的示例中,您可能希望使source属性字符串更长一些,以便向下延伸到包含要验证的属性的项。也许:

source="this.secId_dg.selectedItem.marketRule.locRule"

然后,您要验证的属性将只是:

property="locRuleId"

相关问题