`
xiaoer_1982
  • 浏览: 1895537 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

FLEX实践:表格中添加链接,弹出窗口,复选框,按钮

阅读更多

由于代码比较多,在这里就不做解释了,有问题留言哈!

LovColumn.as

package Class
{
public class LovColumn
{
public var columnName:String;
public var dataField:String;
public var visible:Boolean=true;
public function LovColumn()
{
}

}
}

Module.as

package Class
{
public class Module
{
public var applicationName:String;
public var applicationId:Number;
public function Module()
{
}

}
}

CarVO.as

package Class
{
public class CarVO
{
public var name:String;
public var available:Boolean;
public var age:Number;
public var applicationName:String;
public var applicationId:Number;
public function CarVO()
{
}

}
}

LovComponent.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
showCloseButton="true"
close="cancel()"
borderColor="#C6D7F5"
themeColor="#009DFF"
cornerRadius="10"
creationComplete="init()" width="468" height="324">
<mx:Script>
<![CDATA[
import Events.LovEvent;
import Class.CarVO;
import Class.LovColumn;
import mx.collections.ArrayCollection;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.managers.*;
import mx.controls.*;

public var titleName:String;
public var columnArray:ArrayCollection=new ArrayCollection();
public var sourceArray:ArrayCollection=new ArrayCollection();
[Bindable]public var resultObject:Object=new Object();
[Bindable]public var mainApp:Object = null;
private function init():void{

this.title=titleName;

for(var i:Number=0;i<columnArray.length;i++){
var column:DataGridColumn= new DataGridColumn();
column.headerText = columnArray[i].columnName;
column.dataField =columnArray[i].dataField;
column.visible=columnArray[i].visible;
dg.columns=dg.columns.concat(column);
}
dg.dataProvider=sourceArray;
}

private function submit():void{
resultObject=sourceArray[dg.selectedIndex];
mainApp.resultObject=this.resultObject;
dispatchEvent(new LovEvent);
cancel();
}
private function cancel():void{
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
<mx:DataGrid id="dg" x="10" y="10">

</mx:DataGrid>
<mx:Button x="372" y="252" label="Submit" click="submit()"/>

</mx:TitleWindow>

main.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#DBFAA6, #EFFDB5]">
<mx:states>
<mx:State name="updateState">
<mx:RemoveChild target="{dg}"/>
<mx:RemoveChild target="{button1}"/>
<mx:AddChild position="lastChild">
<mx:Canvas x="325" y="88" width="493" height="328">
<mx:Label x="54" y="44" text="Car Name:"/>
<mx:Label x="54" y="81" text="Age:"/>
<mx:Label x="54" y="122" text="Availiable:"/>
<mx:TextInput x="151" y="42" id="carName"/>
<mx:TextInput x="151" y="79" id="carAge"/>
<mx:CheckBox x="151" y="120" id="carAvailiable"/>
<mx:Button x="406" y="296" label="Update" click="update()"/>
</mx:Canvas>
</mx:AddChild>
</mx:State>
</mx:states>
<mx:Script>
<![CDATA[
import mx.events.CollectionEvent;
import mx.events.FlexEvent;
import Class.LovColumn;
import myComponent.LovComponent;
import Class.Module;
import Class.CarVO;
import mx.collections.ArrayCollection;
import mx.controls.*;
import mx.managers.*;

[Bindable]public var arr:ArrayCollection=new ArrayCollection();
var columnArray:ArrayCollection=new ArrayCollection();
var sourceArray:ArrayCollection=new ArrayCollection();
[Bindable]public var resultObject:Object=new Object();
private function init():void{
var car1:CarVO=new CarVO();
car1.name="Ford";
car1.age=2;
car1.available=false;
car1.applicationName="AC";
car1.applicationId=134;
var car2:CarVO=new CarVO();
car2.name="Buick";
car2.age=1;
car2.available=true;
car2.applicationName="AB";
car2.applicationId=135;
var car3:CarVO=new CarVO();
car3.name="BMW";
car3.age=2;
car3.available=true;
car3.applicationName="AA";
car3.applicationId=136;
arr.addItem(car1);
arr.addItem(car2);
arr.addItem(car3);

/*init lov data source array*/
var lovColumn:LovColumn=new LovColumn();
lovColumn.columnName="Application Name";
lovColumn.dataField="applicationName";

var lovColumn2:LovColumn=new LovColumn();
lovColumn2.columnName="Application Id";
lovColumn2.dataField="applicationId";
lovColumn2.visible=true;
columnArray.addItem(lovColumn);
columnArray.addItem(lovColumn2);

var application1:Module=new Module();
application1.applicationId=136;
application1.applicationName="BAbb";
var application2:Module=new Module();
application2.applicationId=137;
application2.applicationName="BC";
var application3:Module=new Module();
application3.applicationId=138;
application3.applicationName="BD";
sourceArray.addItem(application1);
sourceArray.addItem(application2);
sourceArray.addItem(application3);
arr.addEventListener(CollectionEvent.COLLECTION_CHANGE, show1);
}
private function show():void{
Alert.show(dg.selectedItem.applicationName+"--"+dg.selectedItem.applicationId);
}
public function clickHandler(obj:Object):void{
if(obj.chxBox.selected){
arr.getItemAt(dg.selectedIndex).available=true;
}else{
arr.getItemAt(dg.selectedIndex).available=false;
}
}
public function search():void{
var lovComponent:LovComponent=LovComponent(PopUpManager.createPopUp(this,LovComponent,false));
lovComponent.mainApp = this;
lovComponent.titleName="Application Search Window";
lovComponent.columnArray=this.columnArray;
lovComponent.sourceArray=this.sourceArray;
lovComponent.resultObject=this.resultObject;
lovComponent.width=500;
lovComponent.height=400;
lovComponent.addEventListener("LovEvent",applicationEditHandler);
PopUpManager.centerPopUp(lovComponent);

}
private function applicationEditHandler(evt:Event):void{
arr[dg.selectedIndex].applicationId=this.resultObject.applicationId;
arr[dg.selectedIndex].applicationName=this.resultObject.applicationName;
arr.refresh();
}
public function show1():void{
//var car:CarVO=arr[dg.selectedIndex];


currentState="updateState";
carName.text=arr[dg.selectedIndex].name;
carAge.text=arr[dg.selectedIndex].age.toString();
carAvailiable.selected=arr[dg.selectedIndex].available;

}

public function update():void{
Alert.show(carName.text+" has been updated.");
}
]]>
</mx:Script>
<mx:DataGrid x="344" y="160" width="432" height="199" id="dg" dataProvider="{arr}" >
<mx:columns>
<mx:DataGridColumn dataField="available" headerText="Available">
<mx:itemRenderer>
<mx:Component>
<mx:HBox>
<mx:CheckBox id="chxBox" selected="{data.available}" click="outerDocument.clickHandler(this);"/>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Name" dataField="name">
<mx:itemRenderer>
<mx:Component>
<mx:HBox>
<mx:LinkButton label="{data.name}" click="outerDocument.show1();"
textDecoration="underline" color="#2066CF" fontWeight="normal"/>

</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="Age" dataField="age"/>
<mx:DataGridColumn headerText="Application" dataField="applicationName" editable="true">
<mx:itemRenderer>
<mx:Component>
<mx:HBox>
<mx:Label text="{data.applicationName}" id="applicationText" width="60%"/>
<mx:Button click="outerDocument.search();" width="40%"
Label="..." />

</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn headerText="ApplicationId" dataField="applicationId" />
</mx:columns>
</mx:DataGrid>
<mx:Button x="507" y="100" label="Show Application" click="show()" id="button1"/>

</mx:Application>

分享到:
评论

相关推荐

    flex开发工具的学习.txt

    - **CheckBox**:复选框。 - **PopUpButton**:弹出式按钮,通常用于下拉菜单等场景。 ##### 4. 其他组件 - **List**:列表控件,支持数据绑定。 - **NumericStepper**:数字步进器,用于数值范围的选择。 - **...

    Flex UI组件使用全集

    - **CheckBox**: 复选框组件,允许用户选择多项。 - **LinkBar**: 包含链接样式的按钮组。 - **LinkButton**: 链接样式的按钮。 - **PopUpButton**: 弹出菜单按钮,点击后可显示下拉菜单。 - **RadioButton**: 单选...

    Flex开发实例--学习必备

    - Flex提供了大量的基本UI组件,如按钮、文本框、复选框等。 - 这些组件可以轻松定制样式和行为。 #### 13. 多页面(States) - Flex支持状态管理,允许应用程序根据用户的操作在不同状态下切换。 - 这种机制可以...

    《Flex 3 组件实例与应用(2009版)》(PDF)

    TitleWindow组件用于创建有标题的窗口,通常用于模态对话框或弹出窗口。 ### 重复器控件(Repeater control) #### Repeater Repeater组件用于重复渲染数据集中的每一项,适用于列表或网格的动态生成。 ### 打印...

    web前端常用单词.docx

    * Checked: 选中,用于设置单选框或复选框的默认选择状态。 * Selected: 默认选择项,用于设置下拉选择框的默认选择项。 * Required: 必填项,用于设置输入框的必填项状态。 * Readonly: 只读,用于设置输入框的只读...

    Flex 3 组件实例与应用(2009版)

    - **CheckBox** - 复选框组件,可以勾选多项。 - **LinkBar** - 链接栏组件,包含多个链接按钮。 - **LinkButton** - 链接样式按钮。 - **PopupButton** - 弹出式按钮,点击后可显示一个菜单。 - **RadioButton** - ...

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

    可使用标准Windows元素创建图形用户界面(GUI)屏幕,包括框架窗口、会话、菜单、工具栏、标签、按钮、复选框、单选按钮、滚动条、滑动调节框、微调框、组合框、树列表、列表框、编辑框以及静态文本等。 通过现有...

    html_practice

    表单由`&lt;form&gt;`元素定义,`&lt;input&gt;`元素创建各种输入字段,如文本框、复选框、单选按钮等。`&lt;label&gt;`元素关联输入字段的描述,`&lt;button&gt;`创建按钮,`&lt;select&gt;`和`&lt;option&gt;`用于创建下拉菜单。 9. **响应式设计** ...

    zhoushuang99.github.io:这是我的个人博客

    HTML表单由`&lt;form&gt;`元素定义,常用输入控件有`&lt;input&gt;`(不同类型的输入,如文本、密码、复选框、单选按钮等)、`&lt;textarea&gt;`(多行文本输入)、`&lt;select&gt;`(下拉列表)和`&lt;button&gt;`(按钮)。`action`属性定义表单...

Global site tag (gtag.js) - Google Analytics