完全动态生成年月日下拉关联菜单 flex版

本文介绍了一个使用Adobe Flex实现的动态日期选择器组件。该组件可根据用户选择的年份和月份自动调整日期范围,适用于需要自定义日期选择功能的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" >
<mx:Script>
<![CDATA[
/************************************************************************
*
*  文件名:todaychange.mxml
*
*  文件描述:完全动态生成年月日下拉关联菜单 flex版
*
*  创建人:hereson, 2008年4月21日
*
*  版本号:1.0
*
*  修改记录:
*
************************************************************************/

private var today:Date;
private var YMD:Date;
private var datoptions:Array = new Array();

private function init():void
{
if( YMD==null ) setDefault();
var todaYear:Number=today.getFullYear();
addOption(month,1,12);
addOption(day,1,31);
addOption(year,todaYear-50,todaYear,todaYear-25);
}
private function monthDay(intYear:Number,intMonth:Number):Number{
var mDate:Date = new Date(intYear,intMonth,-1);
var mDay:Number = mDate.getDate() + 1;
return mDay;
}
private function resetDay():void
{
var intYear:Number = Number(year.selectedItem);
var intMonth:Number = Number(month.selectedItem);
var num:Number = monthDay(intYear, intMonth);
var len:Number = datoptions.length;
if( len > num )
{
datoptions.splice(num,len-num);
}else if( len < num )
{
addOption(day, 1, num);
}

}

private function resetMonth():void{
month.selectedItem = 1;
resetDay();
}
private function setDefault(day:String=""):void{
today = new Date();
if( day!="" ) {
var splitDay:Array = day.split("-");
today = new Date( splitDay[0], splitDay[1]-1, splitDay[2] );
}
YMD = new Date(today.getFullYear(), today.getMonth()+1, today.getDate());
}
private function addOption( obj:ComboBox, start:Number, end:Number, selected:Number=-1):void
{
var temparr:Array=new Array();
end++;
for(var i:Number=start;i<end;i++)
{
temparr.push(i);
}
obj.dataProvider=temparr;
if(start>1)obj.selectedIndex=selected-start;
}

]]>
</mx:Script>
<mx:HBox width="100%" horizontalAlign="center" paddingTop="20">
<mx:ComboBox id="year" change="resetMonth()"/>
<mx:Label text="年"/>
<mx:ComboBox id="month" change="resetDay()"/>
<mx:Label text="月" />
<mx:ComboBox id="day" />
<mx:Label text="日"/>
</mx:HBox>
</mx:Application>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值