Flex 可编辑DataGrid的输入验证例子

本文介绍了一个使用Flex DataGrid实现的数据验证应用,包括非空验证和数字验证。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="init()">
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
        import mx.collections.ArrayCollection;
        import mx.utils.StringUtil;
        import mx.controls.TextInput;
        import mx.events.DataGridEventReason;
        import mx.events.DataGridEvent;
        
        [Bindable]
        private var list:ArrayCollection = new ArrayCollection();
        //初始化方法
        private function init():void{
        for(var i:int = 0;i < 10;i++){
        var o:Object;
        if(i%2 ==0)
        o = {num:i,notNull:"非空的第"+i+"行内容",any:"任意的第"+i+"行内容"};
        else
        o = {num:i,notNull:"非空的第"+i+"行内容",any:i};
        list.addItem(o);
        }
        }
        //验证的操作方法
        private function validateItem(event:DataGridEvent):void{
        //如果没有更新数据则直接返回
        if (event.reason == DataGridEventReason.CANCELLED){
        return;
        }
        var input:TextInput = TextInput(_Grid.itemEditorInstance);
        var newData:String= TextInput(event.currentTarget.itemEditorInstance).text;
        //如果商品查询的输入则验证非空
        if(event.dataField == "notNull" && StringUtil.trim(newData).length<=0){
        event.preventDefault();
        input.errorString="不能为空!";
        }
        //如果是数量则验证必须为数字
        if(event.dataField == "num" && isNaN(Number(StringUtil.trim(newData)))){
        event.preventDefault();
        input.errorString="必须为数字!";
        return;
        }
        }
        ]]>
    </fx:Script>
    <mx:DataGrid id="_Grid" y="0" width="100%" x="0" height="100%" itemEditEnd="validateItem(event)" dataProvider="{list}" textAlign="center" editable="true" fontSize="12">
        <mx:columns>
            <mx:DataGridColumn headerText="数字" dataField="num"/>
            <mx:DataGridColumn headerText="非空" dataField="notNull"/>
            <mx:DataGridColumn headerText="任意" dataField="any"/>
        </mx:columns>
    </mx:DataGrid>
</s:Application>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值