extjs 时间范围选择的实现
阅读原文时间:2023年07月09日阅读:2

extjs中 有时须要选择一个日期范围 ,须要自己主动推断,选择的開始日期不能大于结束日期,或结束日期不能小于開始日期,实现的代码例如以下

效果图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb0xpbkJTb2Z0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

从上图能够看到,当选择了一个開始时间后,会自己主动限制结束时间的选择范围,实现两个日期选择器的联动.

代码例如以下:

首先定义联动处理函数:

Ext.apply(Ext.form.field.VTypes, {  
    daterange: function (val, field) {  
        var date = field.parseDate(val);

        if (!date) {  
            return false;  
        }  
        if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime()))) {  
            var start = field.up('grid').down('#' + field.startDateField);  
            start.setMaxValue(date);  
            start.validate();  
            this.dateRangeMax = date;  
        }  
        else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) {  
            var end = field.up('grid').down('#' + field.endDateField);  
            end.setMinValue(date);  
            end.validate();  
            this.dateRangeMin = date;  
        }  
        return true;  
    },  
    daterangeText: '開始日期必须小于结束日期'  
});

Ext.tip.QuickTipManager.init();

在tbar,bbar或form中的items中添加:

    {  
        xtype: 'datefield',  
        fieldLabel: '时间范围  開始',  
        name: 'startdt',  
        id: 'startdt',  
        vtype: 'daterange',  
        endDateField: 'enddt',  
        format: 'Y-m-d',  
        width: 220,  
        labelWidth: 90,  
        msgTarget: 'side',  
        autoFitErrors: false  
    }, {  
        xtype: 'datefield',  
        fieldLabel: '结束',  
        name: 'enddt',  
        id: 'enddt',  
        vtype: 'daterange',  
        startDateField: 'startdt',  
        format: 'Y-m-d',  
        width: 170,  
        labelWidth: 40,  
        msgTarget: 'side',  
        autoFitErrors: false  
    }, { xtype: 'button',  
        text: '查询',  
        iconCls: 'fljs',  
        handler: function () { ...

就可以实现以上效果 本代码复制在extjs4.1.1中执行

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章