zoukankan      html  css  js  c++  java
  • flex与后台及页面间对象的传递

    1、从flex中发送请求后,利用<s:RemoteObject/>启用回调方法,类似于jQuery的post函数:

    <fx:Declarations>
            <s:RemoteObject id="myService" destination="myService" endpoint="{this.parentApplication.contextRoot}/messagebroker/amf" showBusyCursor="true">
                <s:method name="query" result="queryHandler(event)"/>
            </s:RemoteObject>
        </fx:Declarations>

    2、从后台向flex中传递的是一个ArrayList<VD101>,在flex中对应ArrayCollection类型,因为返回的有很多内容如:errorMessage等,因此,我把它们封装在一个对象中叫做:QueryResponse,在QueryResponse中要与后台的QueryResponse相对应,并在前台绑定如下:

    [Bindable]
    [RemoteClass(alias="com.QueryResponse")]
    public class QueryResponse
    {

       public var listVD101:ArrayCollection;

    }

    3、在flex中接收时,就是利用event.result得到传出的值,类似于jQuery中post函数中的data.xxx。

    var queryResponse:Object = event.result;

    4、然后就可以得到listVD101这个集合,绑定到DataGrid中就可以了,结构如下:

    <s:DataGrid>

      <s:columns>
                    <s:ArrayList>

            <s:GridColumn/>

    5、我要选中一行数据,并得到这行数据。就得添加监听器,头部:creationComplete="moduleCreationCompleteHandler(event)"(进入页面就初始化的方法)

    在函数里面添加选中监听器如(myDataGrid为上面<s:DataGrid/>的id):

    private function moduleCreationCompleteHandler(event:FlexEvent):void
                {
                    this.myDataGrid.addEventListener(GridSelectionEvent.SELECTION_CHANGE,onSelected);
                }

    private function onSelected(event:GridSelectionEvent):void
                {
                    this.vd101 = DataGrid(event.target).selectedItem as VD101;
                }

    6.之后就得到了vd101的数据。

    7、向jsp/servlet中传递字段(传递对象有点麻烦用到了)

    var urlRequest:URLRequest = null;
                        urlRequest = new URLRequest(this.parentApplication.contextRoot + "/myServlet?d10101=" + this.vd101.d10101 + "&d10102=" + this.v1101.d10102);
                        navigateToURL(urlRequest,"_blank");

    8、向另一个flex页面传值(可以和jsp中子页面(弹出框)和父页面这种关系传值相比较),在子页面中可以直接用了

    public function myFunction(event:MouseEvent):void
                {
                    if(this.vD101 == null){
                        Alert.show("请选择要操作的行");
                        return;
                    }else{
                        var window:detial = new detial();
                        window.vd101 = this.vD101;
                        PopUpManager.addPopUp(window,this);
                        var x:Number = (this.parentApplication.mdiCanvas.width - window.width) / 2;
                        var y:Number = (this.parentApplication.mdiCanvas.height - window.height) / 2;
                        window.move(x, y);
                    }
                }

    9、从后台传过来的ArrayList类型转换为flex的ArrayCollection类型,取出其中一个对象

    vd301 = listVD301.getItemAt(0) as VD301;使用as强制转换(即,显示转变),

    我很小我很弱,我在慢慢成长!
  • 相关阅读:
    青城的另一个一夜/情
    SystemProperties.get/set property_get/set
    锁——Java同步的基本思想
    CMUSphinx Learn
    猜数字
    我的音乐我的电影
    动态规划_钢条切割问题
    directdraw显示yuv420(YV12)
    Redis 命令参考
    HDU 3078 LCA转RMQ
  • 原文地址:https://www.cnblogs.com/lvzhanhui/p/xiaoqiaolv_flex_chuanzhi.html
Copyright © 2011-2022 走看看