由于Flex自带的日期使用起来感觉不爽,所以自己动手写了一个。
在这话就不多说了下面的控件的效果和实现代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:Form initialize="oninit()" xmlns:mx="http://www.adobe.com/2006/mxml" height="22" paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0" maxHeight="22" minHeight="22" minWidth="120">
<mx:PopUpButton ,1);
row++;
panel.label=i.toString();
frmdates.addChild(panel);
}
panel.addChild(buttons[i] as DisplayObject)
}
}
private function onclick(event:Event)
{
DateValue= (event.currentTarget.data as Date);
}
private function SetSelectYears(year:Number):void
{
var nyears:Array = new Array();
var start:Number = year-50;
var end:Number = year+50;
var months:Array = new Array();
for(var i:Number=start;i<end;i++)
{
nyears.push({label:i,data:i});
}
for(var k:int=1;k<13;k++)
{
months.push({label:k,data:k});
}
cmdPYears.dataProvider= nyears;
cmdPYears.selectedIndex=50;
cmdmonth.dataProvider= months;
cmdmonth.selectedIndex = DateValue.month;
}
private function yearchange()
{
var d:Date = new Date(
cmdPYears.selectedItem.data,
cmdmonth.selectedItem.data-1,1);
createDate(d);
}
private function monthchange()
{
var d:Date = new Date(
cmdPYears.selectedItem.data,
cmdmonth.selectedItem.data-1,1);
createDate(d);
}
]]>
</mx:Script>
</mx:Form>