【问题标题】:Setting 'property' on validator在验证器上设置“属性”
【发布时间】:2011-07-24 17:12:49
【问题描述】:

我在数据网格的列中的每个单元格上使用 NumberValidator。源设置为数据网格的 dataProvider 但属性是问题。我不能只说“文本”,因为我使用 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>

【问题讨论】:

  • 抱歉,添加 cmets 时代码编辑器无法正常工作。无论如何,上面是我正在尝试使用的验证器。显然,“属性”值不正确,但我只是想说明我要验证的是“locRuleId”,它是 locRule 对象的一部分,它是 marketRule 对象的一部分。
  • erm,可以编辑您的原始帖子吗?并添加更多代码,而不仅仅是数字验证器。我想看看你是如何设置数据网格的。
  • 如果我发布那个问题/试图解决那个问题,我会构建一个小型测试应用程序(将排除任何其他原因,如果您发布一个小型应用程序代码,人们会运行它并自己试试)

标签: apache-flex actionscript-3 flex3 flex4


【解决方案1】:

这里的解决方案是使用source 和property 值的正确组合。你走在正确的轨道上。

对于source 属性,文档是这样说的:

此属性支持用点分隔的字符串来指定嵌套属性。

因此,在您的情况下,您可能希望使您的 source 属性字符串更长一些,这会延伸到包含要验证的属性的项目中。也许:

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

那么您要验证的属性就是:

property="locRuleId"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多