`
fuyun
  • 浏览: 51604 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Ext中datepicker的使用

阅读更多
//以下代码功能实现在日历上针对不同日期设置不同的样式,
//例如可实现日程管理中有日程安排的一天的特殊显示样式
this.calendarPanel = new Ext.FormPanel({
    region:"west",
    id:"calendarPanel",
    title:"日历",
    width:183,
    margins:"-2 -2 -2 0",
//  cmargins:"3 3 3 3",
    layout:"table",
    items:[{
        id:"datepicker",
        xtype:"calendarpicker",
        cancelText:'取消',
        monthYearText:'选择一个月 (Control+Up/Down来改变年)',
        nextText:'下月 (Control+Right)',
        okText:'确定',
        prevText:'上月 (Control+Left)',
        todayText:'今天',
        todayTip:today + ' (空格键选择)',
        monthNames:mNames,
        dayNames:dNames,
        value:new Date(),
        listeners:{
            select:{
                fn:function(dp,date){
                    var selectDate = date.format('Y-m-d');
                    Ext.apply(this.calendarStore.baseParams, {
                        startDate:selectDate, endDate:selectDate
                    }); 
                    this.calendarStore.reload({params:{start:0, limit:this.paging.pageSize}});
                    if(selectDate.substring(5,7) != lastSelectDay.substring(5,7)){
                        Ext.apply(this.monthCalendarStore.baseParams, {
                            startDate:date.format('Y-m') + '-00', endDate:date.format('Y-m') + '-31'
                        }); 
                        this.monthCalendarStore.reload({params:{start:0, limit:this.paging.pageSize}});
                    }
                    getCaleDays();//返回需要设置显示的日期
                    lastSelectDay = selectDate;
                },
                scope:this,
                delay:100
            }
        }
    }]
})
var caleDays = new Array(); 
var requestFlag = true;//是否请求标志,即若已请求过并返回结果,则不再进行请求
//获得需要显示的日期
function getCaleDays(){
    if(requestFlag){
        Ext.Ajax.request({
            method:'post', 
            url: 'getCalendarDay.jsp',
            scope: this,   
            success: function(response){
                eval("caleDays = " + response.responseText + ";");
                requestFlag = false;
                setDayStyle();//在此调用乃解决异步请求的处理问题
            }
        });
    }
    else{//否则直接调用
        setDayStyle();
    }
}
//设置显示样式
function setDayStyle(){
    var compareDay;
    Ext.getCmp('datepicker').getEl().select("table.x-date-inner tbody td").each(function(c){
        compareDay = new Date(c.dom.firstChild.dateValue).format('Y-m-d');
        for(var i=0;i<caleDays.length;i++){
            if(compareDay == caleDays[i]){
                c.addClass("calendar-days");
            }
        }
    });
}

注:关于具体的样式设计,在此就不多涉及了,有需要的,可针对具体情况自行设计.
另:以上代码在初始时,未能正常加载,为此,还需修改datepicker的代码(需要修改的地方不多,只需在几处地方增加相应的select触发语句即可)
分享到:
评论

相关推荐

    Ext.DatePicker yearmonth

    在EXTJS库中,`Ext.DatePicker`是一个用于选择日期的组件,通常在网页中用于输入日期或进行日期选择操作。然而,默认情况下,年份和月份的下拉框是并排显示的。根据标题和描述,这个特定的主题是关于如何自定义`Ext....

    ext JS集成My97DatePicker日期控件

    通过以上步骤,我们可以成功地在Ext JS应用中使用My97 DatePicker,提供更佳的用户体验。在实际项目中,开发者通常会参考类似博文链接中提供的教程或示例代码进行操作。这个链接虽然为空,但在其他在线资源中,你...

    extDatePicker

    继承 Ext日历控件 支持全选 反选 清除等功能

    基于EXT框架的JS日历插件.rar

    本代码是一个JavaScript结合EXT实现的日历选择器,既漂亮美观的同时,也保证功能的易用性,如www.codesc.net测试截图所示,喜欢的话,就赶快把它加入到你的WEb项目中吧。  注:本效果在火狐或Chrome浏览器下显示有...

    Ext中xtype和vtype.

    Ext 中的 xtype 和 vtype Ext 是一个功能强大的 JavaScript 框架,它提供了许多有用的组件和工具,使开发者可以快速构建复杂的 Web 应用程序。在 Ext 中,xtype 和 vtype 是两个非常重要的概念,它们分别用于定义...

    Ext Extjs 禁止文本和日期编辑

    在Ext JS这个强大的JavaScript框架中,开发者经常使用各种组件来构建富客户端应用,其中包括TextField(文本字段)和DatePicker(日期选择器)。有时,我们可能需要根据应用需求在运行时禁用这些组件的编辑功能,...

    Ext组件说明 Ext组件概述

    BoxComponent是Ext中的基本布局容器,可以用来控制子元素的位置和大小。通过调整BoxComponent的配置选项,开发者可以实现灵活的布局设计。 ##### 2. **Button(按钮组件)** Button组件是Web应用中最常见的交互...

    为EXT写的月份选择控件

    - - - Ext中控件非常丰富,有各种格式的日期选择DateField,但是要选择月份,非常麻烦.往往是需要修改源码的方法,如: 修改Ext.DatePicker使得Ext.form.DateField...使用接口和DateField类似,可以看下面附件中的代码.

    My97DatePicker皮肤,蓝色

    "蓝色"皮肤是My97DatePicker众多皮肤中的一种,它提供了专业且简洁的界面,适用于多种类型的网页应用,无论是企业级项目还是个人网站,都能很好地适应并提升用户体验。 蓝色皮肤的设计理念主要体现在色彩搭配和布局...

    EXT 时间控件

    在给定的文件中,`date.html` 可能是包含示例代码或展示如何在网页中使用此控件的HTML文件,`ext-all.js` 是EXT框架的全量版本,包含了所有EXT组件的实现,而`DatePicker.js` 则可能是EXT专门处理日期选择的...

    Ext组件描述,各个组件含义

    **2.3 Date Picker (Ext.DatePicker)** - **xtype**: `datepicker` - **功能描述**:Date Picker 是一个日期选择器组件,用户可以通过它选择日期。 - **主要用途**:广泛应用于表单中,需要用户输入特定日期的场景...

    examples.ext.net-5.zip

    本篇文章将围绕"examples.ext.net-5.zip"这个压缩包中的实例代码进行深入探讨,旨在帮助开发者理解和掌握EXT.NET 5.2在WebForm中的应用。 首先,EXT.NET 5.2的主要改进包括组件的增强、性能优化以及对最新浏览器的...

    Ext3.2中文API

    7. **表单组件**:Ext3.2提供了丰富的表单组件,如TextField、ComboBox、DatePicker等,以及复杂的表单布局和验证机制,便于创建用户输入界面。 8. **树形组件TreePanel**:TreePanel用于显示层次结构的数据,支持...

    EXT选择月份的控件

    在实际应用中,开发人员通常会通过以下方式使用EXT的月份选择控件: ```javascript // 创建DateField实例 var dateField = Ext.create('Ext.form.DateField', { fieldLabel: '选择月份', width: 200, allowBlank...

    ext 时间控件带有时分秒的控件

    描述中提到,EXT JS的原生日期控件不包含时分秒的选择,这意味着在标准的EXT JS DateField或DatePicker组件中,用户只能选择日期,无法设定具体的时间。为了解决这个问题,开发者可以创建一个自定义的EXT JS组件,...

    【Ext2.0】只有月份的日期控件

    然而,在Ext2.0版本中,标准的日期选择器(DatePicker)默认提供了完整的年、月、日选择功能,可能并不满足只需要选择月份的特定需求。因此,开发者通过扩展(Extension)机制创建了一个名为"MonthPicker"的自定义...

    Ext-datatimefield日期与时间选择器.rar

    "Ext-datatimefield"是Ext JS库中的一个组件,它结合了日期选择器(Ext-datepicker)和时间选择器(Ext-timefield),提供了一种用户友好的方式来输入或选择日期和时间。这个组件非常适合需要用户输入特定日期和时间...

    Ext Js权威指南(.zip.001

    1.2.4 在javascript中使用json / 4 1.2.5 在.net中使用json / 8 1.2.6 在java中使用json / 12 1.2.7 更多有关json的信息 / 15 1.3 ext js 4概述 / 15 1.4 ext js的开发工具的获取、安装与配置介绍 / 18 1.4.1...

    Ext2的日期组件只选择年月

    在描述中,提供了博文链接,虽然没有具体内容,但可以推测博主可能详细解释了如何配置或自定义Ext2中的日期组件以仅显示年月选择。这可能涉及到对源码的修改,或者利用现有的API选项来实现这一功能。 标签 "源码" ...

    ext可编辑表格

    9. **editor**:对于包含日期的列,使用`DatePicker`作为编辑器,定义了日期格式、最小值以及不可选的日期。 EXT可编辑表格结合了EXTJS的灵活性和强大功能,提供了直观、交互式的数据编辑体验,常用于需要用户在...

Global site tag (gtag.js) - Google Analytics