Установка свойства на валидаторе
Я использую NumberValidator для каждой ячейки в столбце таблицы данных. В качестве источника задано значение dataProvider сетки данных, но проблема заключается в свойстве. Я не могу просто сказать "текст", потому что я использую labelFunction для получения свойства, потому что оно вложено в другой объект.
Есть ли способ обойти это? Мне нужно будет создать свой собственный валидатор? Надеюсь нет. Любые советы приветствуются.
Спасибо!
<mx:NumberValidator id="security_locate_numberValidator"
source="{this.secId_dg.dataProvider}" lowerThanMinError="A locate is required."
property="marketRule.locRule.locRuleId" minValue="0" />
<mx:DataGrid
id="secId_dg"
editable="true"
dataProvider="{this.marketRuleServiceEntity.exceptionComposites}"
itemEditEnd="onSecurityPicked(event)"
width="100%"
rowCount="10"
tabEnabled="false">
<mx:columns>
<mx:DataGridColumn
headerText="Security ID"
labelFunction="getSecId"
editorDataField="text"
editable="true">
<mx:itemEditor>
<mx:Component>
<application:SecuritySuggestInput
maxWidth="160"
minWidth="160"
toolTip="Search on a Ticker, CUSIP, or Sedol"
width="160"
prompt="Search Security"/>
</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"
itemEditor="com.fidelity.primeservices.act.editor.overrides.LocatesEditor"/>
<mx:DataGridColumn
headerText="Comments"
width="200"
editable="true"/>
<mx:DataGridColumn
headerText="Delete"
editable="false"
itemRenderer="com.fidelity.primeservices.act.renderer.overrides.SecuritiesDeleteIconRenderer"/>
</mx:columns>
</mx:DataGrid>
1 ответ
Решение здесь состоит в том, чтобы использовать правильную комбинацию source
а также property
ценности. Вы были на правильном пути.
Для source
собственность документация говорит это:
Это свойство поддерживает разделенные точками строки для указания вложенных свойств.
Так что в вашем случае, вы бы хотели сделать свой source
строка свойства немного длиннее, что-то, что дошло до элемента, содержащего свойство для проверки. Может быть:
source="this.secId_dg.selectedItem.marketRule.locRule"
Тогда ваша собственность для проверки будет просто:
property="locRuleId"