`
hongyongqq
  • 浏览: 28377 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Flex 下拉树,时间控件的操作

    博客分类:
  • flex
 
阅读更多


<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
   xmlns:s="library://ns.adobe.com/flex/spark"
   xmlns:mx="library://ns.adobe.com/flex/mx"
   xmlns:wg="com.webgriffe.components.*"
   creationComplete="onInit()"
   minWidth="955" minHeight="600">
<s:layout>
<s:BasicLayout/>
</s:layout>
<fx:Declarations>
<!-- 将非可视元素(例如服务、值对象)放在此处 -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import mx.collections.XMLListCollection;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;

[Bindable]
public var xmlResult:XML;

[Bindable]
public var xmlList:XMLList;
private var selectedNode:XML;
[Bindable]
public var xmlTeams:XMLListCollection;
public var xmlService:HTTPService = new HTTPService();


[Bindable] 
private var today:Date = new Date(new Date().setHours(0,0,0,0)); 
[Bindable] 
private var start:Date = today; 
[Bindable] 
private var end:Date = start; 

private function onInit():void{
xmlService.url = "regtree.xml"                
xmlService.resultFormat = "e4x";
xmlService.addEventListener(ResultEvent.RESULT, resultHandler);
xmlService.send();
}
public function resultHandler(event:ResultEvent):void
{
xmlResult = XML(event.result);
xmlList = xmlResult.league;
xmlTeams = new XMLListCollection(xmlList);
}
private function treeChange(e:Event):void{ 


Alert.show("选择");
selectedNode = TreeComboBox(e.target).selectedItem as XML; 

}
private function onDateChangeHandler(event:Event):void
{

if(startDate.text == "")
{
startDate.selectedDate = start;
}
else
{
start = startDate.selectedDate;       
}

if(endDate.text == "")
{
endDate.selectedDate = this.end;
}
else
{
this.end = endDate.selectedDate;
}

}  
private function clear():void
{
txtSearch.text = "";
residentialNumber.text= "";
txtSearch.text= "";
residentialtType.text= "";
residentialtType.selectedItem=null;
cmbStyle.selectedItem=null;

cmbStyle.text= "";
startDate.text= "";
startDate.selectedDate=null;
endDate.selectedDate=null;
endDate.text= "";
treecombox.selectedItem=null;
treecombox.text= "";
}
]]>
</fx:Script>
<s:Group id="textInput"
width="100%" height="100%"
visible="true"
>
<s:layout>
<s:VerticalLayout gap="10" horizontalAlign="center"/>
</s:layout>

<s:RichEditableText id="txtLabelText"
width="100%"
editable="false"
text=""
textAlign="center"/>
<s:HGroup width="100%" horizontalAlign="center">
<s:Label text="小区编号" /><s:TextInput id="residentialNumber"  width="130"/>
<s:Label text="小区名称"   />
<s:TextInput id="txtSearch"  width="130"/>
</s:HGroup>

<s:HGroup width="100%" horizontalAlign="center">
<s:Label text="小区类型" /><mx:ComboBox  id="residentialtType"  width="130" >
  
   <fx:Object label="公共机构" value="公共机构"/>
   <fx:Object label="住宅" value="住宅"/>
   <fx:Object label="商业" value="商业"/>
   <fx:Object label="商住两用" value="商住两用"/>
   <fx:Object label="工业厂房" value="工业厂房"/>
   <fx:Object label="公共设施" value="公共设施"/>
   <fx:Object label="非独立" value="非独立"/>
   <fx:Object label="其它" value="其它"/>
   </mx:ComboBox>
<s:Label text="达标情况" /><mx:ComboBox  id="cmbStyle"  width="130" >
   <fx:Object label="达标小区" value="1"/>
   <fx:Object label="未达标小区" value="2"/>
   <fx:Object label="城中村" value="3"/>
   <fx:Object label="其它" value="4"/>
   </mx:ComboBox> </s:HGroup>

<s:HGroup width="100%" horizontalAlign="center">
<s:Label text="开始时间" />
<mx:DateField id="startDate" selectableRange="{{rangeEnd:end}}" change="onDateChangeHandler(event)" width="130" dayNames="[日,一,二,三,四,五,六]" monthNames="[一,二,三,四,五,六,七,八,九,十,十一,十二]" formatString="YYYY-MM-DD" showToday="true"/>
<s:Label text="结束时间" />
<!--   selectedDate="{new Date()} -->
<mx:DateField id="endDate"  selectableRange="{{rangeStart:start,rangeEnd:today}}"  change="onDateChangeHandler(event)" width="130" dayNames="[日,一,二,三,四,五,六]" monthNames="[一,二,三,四,五,六,七,八,九,十,十一,十二]" formatString="YYYY-MM-DD" showToday="true" />
</s:HGroup>

<s:HGroup width="50%" horizontalAlign="center">
<s:Label text="行政区划" />

<wg:TreeComboBox id="treecombox"
name="treecomboxname"
prompt="请选择..."
change="treeChange"
width="100%" treeHeight="250"
dataProvider="{xmlTeams}"
labelField="@label" />
</s:HGroup>
<s:HGroup width="100%" horizontalAlign="center">
<s:Button  label="确定"/>
<s:Button click="clear()" label="清除"/>
</s:HGroup>
</s:Group>

</s:Application>

------combox tree渲染

package com.webgriffe.components
{
import mx.controls.Alert;
import mx.controls.ComboBox;
import mx.controls.Tree;
import mx.core.ClassFactory;
import mx.events.DropdownEvent;
import mx.events.ListEvent;
import mx.events.TreeEvent;



[Event(name="rendererItemClick", type="com.esri.viewer.AppEvent")]
public class TreeComboBox extends ComboBox
{
// -------------------------------------------------------------------------
//
// Properties
//
// -------------------------------------------------------------------------

// ----------------------------
// ddFactory
// ----------------------------

private var _ddFactory:ClassFactory;

private function get ddFactory():ClassFactory
{
if (_ddFactory == null)
{
_ddFactory = new ClassFactory();
_ddFactory.generator = TreeComboBoxRenderer;
_ddFactory.properties = {
id:"treerenderId",
width:this.width,
height:this._treeHeight,
outerDocument:this
};
}
return _ddFactory;
}

// ----------------------------
// treeHeight
// ----------------------------

private var _treeHeight:Number;

public function get treeHeight():Number
{
return _treeHeight;
}

public function set treeHeight(value:Number):void
{
this._treeHeight = value;
ddFactory.properties["height"] = this._treeHeight;
}

// ----------------------------
// treeSelectedItem
// ----------------------------

public var treeSelectedItem:Object;

// -------------------------------------------------------------------------
//
// Constructor
//
// -------------------------------------------------------------------------

public function TreeComboBox()
{
super();

this.dropdownFactory = ddFactory;

this.addEventListener(DropdownEvent.OPEN, onComboOpen);

}

private function treeOpenHandler(e:TreeEvent):void
{
Alert.show("提示");
}
// -------------------------------------------------------------------------
//
// Handlers
//
// -------------------------------------------------------------------------

private function onComboOpen(event:DropdownEvent):void
{

var tree:TreeComboBoxRenderer = dropdown as TreeComboBoxRenderer;
if (treeSelectedItem)
{
tree.expandParents(treeSelectedItem);
tree.selectNode(treeSelectedItem);
}
else
{

//tree.expandItem(dataProvider.getItemAt(0), true);
}
}



// -------------------------------------------------------------------------
//
// Overridden methods
//
// -------------------------------------------------------------------------

/**
* Ovverride to avoid root node label being displayed as combo text when
* closing the combo box.
*/
override protected function updateDisplayList(unscaledWidth:Number,
                                              unscaledHeight:Number):void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);  

if(dropdown && treeSelectedItem && treeSelectedItem[labelField] != null)
{  
        text = treeSelectedItem[labelField];
   }
}

// -------------------------------------------------------------------------
//
// Other functions
//
// -------------------------------------------------------------------------

public function updateLabel(selectedItem:Object):void
{
if (selectedItem)
{
treeSelectedItem = selectedItem;
text = treeSelectedItem[labelField];
}
}

}
}

------combox tree渲染

package com.webgriffe.components
{

import flash.events.DataEvent;

import mx.collections.XMLListCollection;
import mx.controls.Alert;
import mx.controls.Tree;
import mx.events.ListEvent;
import mx.events.TreeEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.remoting.Operation;
import mx.rpc.remoting.RemoteObject;

public class TreeComboBoxRenderer extends Tree
{
// -------------------------------------------------------------------------
//
// Properties
//
// -------------------------------------------------------------------------

[Bindable]
public var outerDocument:TreeComboBox;

// 渲染器点击事件处理标示
public const RENDERER_ITEM_CLICK : String = "rendererItemClick" ;


private var mobile:RemoteObject; 

// -------------------------------------------------------------------------
//
// Constructor
//
// -------------------------------------------------------------------------

public function TreeComboBoxRenderer()
{
super();
this.addEventListener(ListEvent.CHANGE, onSelectionChanged);
//点击展开+ 事件。暂时不用
//this.addEventListener(TreeEvent.ITEM_OPEN, treeOpenHandler);
}


private function treeOpenHandler(event:TreeEvent):void
{
//if(outerDocument)
//outerDocument.dispatchEvent(new  AppEvent(RENDERER_ITEM_CLICK,event)); // 派发事件    bubbles
// dispatchEvent(new Event(RENDERER_ITEM_CLICK, true)); // 派发事件    bubbles
}


// -------------------------------------------------------------------------
//
// Handlers
//
// -------------------------------------------------------------------------

private function onSelectionChanged(event:ListEvent):void
{
outerDocument.updateLabel(event.currentTarget.selectedItem);
}

// -------------------------------------------------------------------------
//
// Other methods
//
// -------------------------------------------------------------------------

public function expandParents(node:Object):void
{

if (node && !isItemOpen(node))
{

expandItem(node, true);
            expandParents(node.parent());
        }
}

public function selectNode(node:Object):void
{


selectedItem = node;
var idx:int = getItemIndex(selectedItem);
    scrollToIndex(idx);
}
}
}

  • 大小: 30.8 KB
分享到:
评论

相关推荐

    flex可选择时间的日历控件

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

    flex下拉dataGrid

    带dataGrid的自定义下拉控件,实现表格下拉

    Flex中通过dropShadowEnabled样式给List控件添加阴影效果

    在前面的例子中我们演示了Flex中如何通过CSS设置ComboBox控件下拉菜单阴影(Flex中通过CSS设置ComboBox控件下拉菜单阴影的例子)。接下来的例子演示了Flex中如何通过dropShadowEnabled样式,给List控件添加阴影效果...

    软件界面设计工具_3款合集

    从能够显示您将获得什么的控件面板中进行拖放操作。 属性编辑程序使您能将每个元素进行自定义。 元素的自动生成功能。 您能在任何地方放置任何元素。 Edge snapping能通过“点击”对屏幕元素进行统一记录。 ...

    100多个源码小程序,微信小程序全套源代码(后台、小程序php) 微信小程序,完整项目,源代码,后台,小程序

    100多个源码小程序,微信小程序全套源...小程序类型列表: .idea AppleMusic B站首页界面设计:附详细教程 cnode社区版 ...FlexLayout布局 ...下拉刷新,tab切换 ...交互操作控件 人脸检测 今日头条 仿微信DEMO 仿找事吧

    130个毕业设计微信小程序源码下载完整项目

    交互操作控件 人脸检测 今日头条 仿微信DEMO 仿找事吧 仿网易云音乐 会议精灵 你画我猜 侧滑布局 健康菜谱 全屏动画滚动 分答小程序 创客+实现大量功能,推荐研究 剪刀石头布 医药网 卡卡汽车 获取...

    最火推荐130个毕业设计微信小程序源码下载.zip

    交互操作控件 人脸检测 今日头条 仿微信DEMO 仿找事吧 仿网易云音乐 会议精灵 你画我猜 侧滑布局 健康菜谱 全屏动画滚动 分答小程序 创客+实现大量功能,推荐研究 剪刀石头布 医药网 卡卡汽车 获取...

    130个毕业设计微信小程序源码下载

    交互操作控件 人脸检测 今日头条 仿微信DEMO 仿找事吧 仿网易云音乐 会议精灵 你画我猜 侧滑布局 健康菜谱 全屏动画滚动 分答小程序 创客+实现大量功能,推荐研究 剪刀石头布 医药网 卡卡汽车 获取...

    最火推荐130个毕业设计微信小程序源码

    交互操作控件 人脸检测 今日头条 仿微信DEMO 仿找事吧 仿网易云音乐 会议精灵 你画我猜 侧滑布局 健康菜谱 全屏动画滚动 分答小程序 创客+实现大量功能,推荐研究 剪刀石头布 医药网 卡卡汽车 获取...

    最新整理的125个微信小程序模板源码分享

    小程序-交互操作控件 小程序-人脸检测 小程序-今日头条 小程序-仿微信DEMO 小程序-仿找事吧 小程序-仿网易云音乐 小程序-会议精灵 小程序-你画我猜 小程序-侧滑布局 小程序-健康菜谱 小程序-全屏动画滚动 小程序-分...

    130个微信小程序源码(上).zip

    一元夺宝主页设计-万年历-下拉刷新,tab切换-东航订机票-事项助手-二维码生成器-云笔记-五十音图-五险一金计算-交互操作控件-人脸检测-今日头条-仿微信DEMO-仿找事吧-仿网易云音乐-会议精灵-你画我猜-侧滑布局-健康...

    asp.net知识库

    一个时间转换的问题,顺便谈谈搜索技巧 .net中的正则表达式使用高级技巧 (一) C#静态成员和方法的学习小结 C#中结构与类的区别 C#中 const 和 readonly 的区别 利用自定义属性,定义枚举值的详细文本 Web标准和ASP...

    报表软件--Style Report报表数据填报

     通用性好,flex应用提供了平滑的易用性,同时也提供了跨浏览器的支持  零客户端  可扩展性好,通过简单搭配的javascript,使得一切应用皆为可能  可以和各种数据源相关联,实现异构数据源之间的表关联,...

    123个微信小程序源码.zip

    FlexLayout布局 gank HIapp IT-EBOOK leantodu LOL战绩查询 movecss效果 Railay:整体框架 redux绑定 TCP,IP长连接 todo list v2ex 一个(仿) 一元夺宝主页设计 万年历 下拉刷新,tab切换 东航订机票 事项助手 ...

    VB编程资源大全(源码 数据库)

    1,databasesearch.ZIP 数据库查询示例程序(3KB) 2,dbgrid.ZIP 在DBGRID控件的单元格中实现下拉列表框(3KB) 3,flex.ZIP 隐藏FlexGrid的某些行(2KB) 4,dbpic.ZIP 将图片添加到Access数据库中。...

Global site tag (gtag.js) - Google Analytics