开发者

Using validators in DataGrid - Flex

开发者 https://www.devze.com 2022-12-13 03:41 出处:网络
i have an editable DataGrid, something like: <mx:Datagrid editable=\"true\" dataProvider=\"{arrayListPreferences}\" id=\"preferencesGrid\">

i have an editable DataGrid, something like:

<mx:Datagrid editable="true" dataProvider="{arrayListPreferences}" id="preferencesGrid">
    <mx:columns>
        <mx:DataGridColumn header="col1" dataField="preference" editable="false"/>
        <mx:DataGridColumn header="col2" dataField="value" editable="true"/>
    </mx:columns>
</mx:Datagrid>

When the user edits the data there's a button that he click开发者_Go百科s and calls a function that saves the data to a database, and in this function i have to validate the data before sending it. I want to use simple validators (NumberValidator, StringValidator, etc) but i don't know how to set the source of this validators to the specified rows in the second column.


<mx:NumberValidator source="{preferencesGrid.selectedItem}" property="value" 
    integerError="Enter Integer value"
    minValue="18" maxValue="50" domain="int" 
    trigger="{saveButton}" triggerEvent="click"
    valid="saveData();"/>

Set the property of validator to the dataField of the desired column.


<mx:DataGridColumn editable="true" itemRenderer="MyTextInputItemRenderer"/>



public class MyTextInputItemRenderer extends TextInput{
        private var validator:StringValidator;
        public function MyTextInputItemRenderer(){
            validator = new StringValidator;
            validator.minLength=0;
            validator.property = "text";
            validator.source = this;
        }
        override public function set data(value:Object):void{
            super.data = value;
            validator.validate();
        }
    }
0

精彩评论

暂无评论...
验证码 换一张
取 消