`
chaoming.yang
  • 浏览: 63796 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Flex 时间选择输入组件(对DateField的改进)

阅读更多
   Flex 的DateField组件不能输入时间,但一般应用尤其在数据量较大的情况下,又不可能不根据时间条件来过滤,比如在消息查询,历史记录或者日志查看。
     网上搜了很多文章大概是想着怎么对DateField扩展,重写他的方法或者监听他的事件,也有有的是自己用NumbericStepper,总之代码很长。
   看flex的文档帮助有以下说明:
DateField 控件是用于显示日期的文本字段,字段右侧带有日历图标。当用户在控件边框内的任一位置单击时,将弹出一个 DateChooser 控件,显示当月的所有日期。如果未选择日期,则该文本字段为空白,并且 DateChooser 控件中将显示当前日期的月份。
    由此可见DateField实现原理就是一个TextInput 加一个DateChooser,按这个思路自己写一个也很简单的,当然你也可以继承DateField但里面的事件监听比较繁琐的。
    以下是我的写法,就是一个HBox 里面放一个TextInput 和一个Button,当点击Button的时候弹出DateChooser,然后把选择的值放在TextInput以String方式传到后台然后转换成具体的时间。为了好看吧DateField的图标嵌入到这个Button中。下面的代码是具体的实现。有一点没实现就是时间默认是当前时间,要想改只能手动改(如果有必要你可以自己封装一个NumbericStepper来实现时间的选择)
  package message.utils
{
import flash.events.MouseEvent;

import mx.containers.HBox;
import mx.controls.Button;
import mx.controls.DateChooser;
import mx.controls.TextInput;
import mx.events.CalendarLayoutChangeEvent;
import mx.formatters.DateFormatter;
import mx.managers.PopUpManager;

public class TimestampField extends HBox
{
private var dc:DateChooser;
private var textInput:TextInput;
private var btn:Button;
private var df:DateFormatter;

//add dateFile icon
[Embed(source="message/assets/DateField.jpg")]
private var dateFieldIcon:Class;

public function TimestampField()
{
super();
//Date Formate Change Yourown If  Require
df=new DateFormatter();
df.formatString="YYYY-MM-DD JJ:NN:SS";
//Create Text Input -DateChoose
textInput=new TextInput();
btn=new Button();
dc=new DateChooser();

this.addChild(textInput);
this.addChild(btn);

//Set Formate
textInput.width=135;
textInput.height=20;

btn.width=20;
btn.height=20;
btn.setStyle("icon", dateFieldIcon);
//Add Event-Listener
dc.addEventListener(CalendarLayoutChangeEvent.CHANGE, onChange);
btn.addEventListener(MouseEvent.CLICK, openDc);
}

private function openDc(event:MouseEvent):void
{
PopUpManager.addPopUp(this.dc, this.btn, true);
PopUpManager.centerPopUp(this.dc);
}

private function onChange(event:CalendarLayoutChangeEvent):void
{
var dt:Date=new Date();
var stmp:String=df.format(event.newDate);
stmp=stmp.substr(0, 11) + df.format(dt).substr(10);
this.textInput.text=stmp;
PopUpManager.removePopUp(this.dc);
}
}
}
注以下代码中的DateField.jpg 是用qq从DateField上截屏然后保存到指定的目录下的。                 //add dateFile icon
[Embed(source="message/assets/DateField.jpg")]
private var dateFieldIcon:Class;
分享到:
评论

相关推荐

    flex DateField 时分秒 选择

    总的来说,"flex DateField 时分秒选择"是通过自定义组件和扩展Flex DateField的基本功能,以满足精确到秒的时间选择需求。通过深入理解提供的源代码,开发者可以将其整合到自己的Flex应用中,提升用户体验,并实现...

    Flex自定义DateField选择时分秒

    6. **集成到项目**:将自定义的DateField组件引入到Flex项目中,替换原有的DateField,这样用户就可以看到一个支持时分秒选择的日期输入控件了。 7. **测试与优化**:进行充分的测试,确保在不同操作系统和浏览器上...

    Flex自定义DateField选择时分秒 修复版

    在Flex开发中,DateField是用于输入和显示日期的标准组件,但有时开发人员可能需要更高级的功能,例如选择时、分、秒。标题"Flex自定义DateField选择时分秒 修复版"揭示了一个定制解决方案,它扩展了基础的DateField...

    Flex 带时间的DateField的

    在Flex开发中,DateField是Adobe Flex UIComponent类的一个子类,用于显示和编辑日期值。这个组件在用户界面设计中非常常见,特别是...对源码的深入理解和自定义组件的实践将增强开发者在Flex开发中的灵活性和创造性。

    Flex时间选择控件 精确到时分秒

    `MX:DateField`是Flex MX组件集的一部分,它允许用户输入日期和/或时间,也可以通过下拉日历和时间选择器进行选择。为了使时间选择精确到时分秒,开发者通常需要设置`formatString`属性,将其值设定为"HH:mm:ss",...

    Flex日期选择器组件(带年月日时分妙)

    开发了一个Flex日期选择器组件(带年月日时分妙),若哪里需要用到日期选择器组件,把DateField.swc文件拷贝到Flex项目的libs文件夹内,引用util.dateField包下的DateFieldComp组件即可。 用组件的id.text可获得组件的...

    Flex-时间控件,带年月日时分秒

    "Flex-时间控件,带年月日时分秒"是一种专门用于处理时间选择的组件,它允许用户方便地设定日期和时间,包括年、月、日、小时、分钟和秒。Flex是一种基于ActionScript 3.0的开源框架,由Adobe开发,主要用于构建富...

    flex可选择时间的日历控件

    flex自带的日期控件是没有时间选择的,本控件集成了时间的选择,另外时间的选择实现了可手动输入,输入的值可以定位下拉列表框. 导入方便,引用方便,提供多种输出格式. 经过测试完全OK,并且该控件已经应用于我们公司的...

    Flex4_DateChooser_DateField

    在Flex4中,DateChooser和DateField是两个用于处理日期输入和显示的UI组件,它们在构建用户界面时起着至关重要的作用。DateChooser通常用于为用户提供一个日历选择器,而DateField则是一个文本输入框,显示所选日期...

    Flex实现自定义中文日期选择(mx:DateField)

    在Flex开发中,MX组件库提供了DateField控件用于显示和选择日期,但默认情况下,它的日期格式和语言通常是英文。然而,在中国的应用环境中,我们往往需要使用中文日期格式。这篇博客将指导你如何通过自定义来实现...

    Flex带时间的日期控件

    在Flex中,我们可以使用内置的DateField组件来创建基本的日期选择器,但默认情况下,DateField仅支持选择日期,不包含时间选择。为了实现“Flex带时间的日期控件”,我们需要自定义DateField或者使用第三方库,如mx....

    自定义DateField

    本文将深入探讨如何在Flex中自定义DateField,以实现更丰富的功能,例如添加时间选择,并提供源码参考。 自定义DateField控件通常涉及以下几个关键步骤: 1. **扩展基类**: 首先,我们需要创建一个新的MXML组件...

    flex组件介绍

    Flex中的`Form`组件用于创建数据输入表单,它能够自动布局和调整其子控件的位置,以适应不同的屏幕尺寸。`Form`组件支持多种数据绑定技术,使得数据收集和验证过程变得更加简单和高效。 #### Flex内建的UI控件 ...

    解决datefield组件 日期选择框在IE8下显示不完整的问题

    extjs中,经常会用到datefield组件控制用户对日期的操作,比如日志管理,需要开始时间、结束时间,但是IE8下日期选择框会显示不全,解决方法参加代码。 同时改代码解决了开始时间、结束时间的时间范围控制的问题,即...

    Flex 日期组件

    `DateField`是Flex中的一个控件,它允许用户输入或选择日期,提供了丰富的自定义和格式化选项。 首先,让我们了解`DateField`的基本用法。`DateField`控件继承自`TextInput`,但添加了日期选择的功能。通过设置`...

    Flex中DateField实现时分秒选择并添加确定按钮 DateChooser

    最近刚好用到DateField组件,却无奈的发现只能选择年月日,不支持时分秒,在晚上找了好多,有的勉强可以用,但是很不完善.对从网上拿到一份代码进行了改善,具体从哪里拿的也忘了,请原作者勿怪. 改善之后的功能: 1.可以...

    flex日期控件可选时分秒

    Flex提供了多种日期相关的组件,如DateField、DatePicker等,它们可以集成在应用程序中,为用户提供直观的日期选择体验。 三、DateTimeField组件 标题中提到的"DateTimeField"是Flex中一个重要的日期时间选择控件。...

    仿DateField的时间组件

    "仿DateField的时间组件"是一个针对日期和时间选择的自定义UI控件,它模仿了标准的DateField行为,但可能提供了更丰富的功能或更好的用户体验。这篇博客文章(链接:https://qiansheng.iteye.com/blog/2080753)可能...

    Flex 自定义时间控件 功能很全

    因此,自定义时间控件通常会扩展`DateField`或`TextInput`组件,增加对时间选择的支持。在这个自定义组件中,用户可能可以通过下拉菜单选择小时和分钟,或者通过键盘输入,同时控件会进行验证以确保输入的时间格式...

Global site tag (gtag.js) - Google Analytics