<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的漫漫程序之旅

    專注于JavaWeb開發
    隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
    數據加載中……

    Flex3 CRUD 與Java后臺交互 完整Demo

    網上關于flex java curd的例子很少,官方的文檔不全且有錯誤.今天自己做的個crud的例子,
    不帶分頁(分頁網上有很多例子了).
    上圖:


    mxml:
    <mx:Application
        
    xmlns:mx="http://www.adobe.com/2006/mxml"
        layout
    ="absolute">

       
    <mx:Script>
            
    <![CDATA[
                include "product.as";
            
    ]]>
        
    </mx:Script>

        
    <mx:HTTPService
            
    id="productService"
            url
    ="http://localhost:8888/flex2/productServlet"
            resultFormat
    ="e4x"
            useProxy
    ="false" />  <!--url改成您的數據請求地址-->

        
    <mx:ViewStack id="viewstack1" width="731" height="473"  x="86.5" y="10">
        
    <!--index 0 -->
            
    <mx:Canvas label="Form View" width="100%" height="100%">
                
    <mx:Form horizontalCenter="0" verticalCenter="0"
                    backgroundColor
    ="#18E1CC" width="124" height="56">
                        
    <mx:Button label="進入" click="fill()" width="100"/>
                
    </mx:Form>
            
    </mx:Canvas>
        
    <!--index 1-->    
            
    <mx:Panel label="AdvancedDataGrid 顯示" width="100%" height="100%"  layout="absolute">
                
    <mx:AdvancedDataGrid id="grid1" width="666" height="380" dataProvider="{_result.product}"  editable="true" itemEditEnd="updateHandler(event)"   x="10" y="10">
                      
    <mx:columns>
                         
    <mx:AdvancedDataGridColumn  dataField="id" headerText="ID"  editable="false"/>
                        
    <mx:AdvancedDataGridColumn  dataField="productName" headerText="產品名稱" />
                        
    <mx:AdvancedDataGridColumn  dataField="remark" headerText="備注" />
                      
    </mx:columns>
                
    </mx:AdvancedDataGrid>
                
                
    <mx:Button x="60" y="401" label="添加" click="{viewstack1.selectedIndex = 2}"/>
                
    <mx:Button label="刪除"   x="180" y="401" click="remove()"/>    
            
    </mx:Panel>
        
    <!--index 2-->
            
    <mx:Canvas label="添加新記錄" width="100%" height="100%" id="canvas3" >
                
    <mx:Form
                        
    backgroundColor="#FFFFFF"  verticalCenter="-91" horizontalCenter="-138">
                        
                    
    <mx:FormItem label="" width="189" height="20">
                        
    <mx:Button  label="返回" click="this.viewstack1.selectedIndex=1"/>
                        
    <mx:TextInput id="hidden_id"  visible="false" />
                    
    </mx:FormItem>    
                    
                    
    <mx:FormItem label="產品名稱">
                        
    <mx:TextInput id="productName"/>
                    
    </mx:FormItem>
                    
                    
    <mx:FormItem label="備注">
                        
    <mx:TextInput id="remark"/>
                    
    </mx:FormItem>
                    
                    
    <mx:Button label="保存" click="insertProduct()" id="btn" />
                
    </mx:Form>
            
    </mx:Canvas>
            
        
    </mx:ViewStack>

       
    </mx:Application>
    as:
    import mx.collections.XMLListCollection;
    import mx.controls.Alert;
    import mx.controls.TextInput;
    import mx.events.AdvancedDataGridEvent;
    import mx.events.CloseEvent;
    import mx.rpc.events.ResultEvent;

    private var params:Object = new Object();

    //private var ld:XMLListCollection; 官方文檔的XMLListCollection并不能用,例子有問題郁悶
    [Bindable]
    private var _result : XML ; //注意文件名防止沖突
    /**
     * xml數據的渲染
     * 
    */

    public function resultHandler(event:ResultEvent):void 
    {
        _result 
    = XML(event.result);
    }

    /**
     * 查詢所有產品的按鈕事件
     * 
    */

    public function insertItemHandler(event:ResultEvent):void 
    {
        fill();
    }

    /**
     * 查詢所有產品的方法 
     * 
    */

    public function fill():void
    {
        
    //為productService(HTTPService) 重新綁定監聽器(查詢)
        productService.removeEventListener(ResultEvent.RESULT,insertItemHandler);
        productService.addEventListener(ResultEvent.RESULT,resultHandler);
        productService.method 
    = "GET";
        
    //要傳遞的參數
        params['method'= "findAll";
        productService.cancel();
        productService.send(params);
        
    //切換到Grid視圖
        viewstack1.selectedIndex=1;
    }

    /**
     * 插入產品
     * 
    */

    public function insertProduct():void
    {
        
    //綁定新的監聽器(插入)
        productService.removeEventListener(ResultEvent.RESULT,resultHandler);
        productService.addEventListener(ResultEvent.RESULT,insertItemHandler);
        productService.method 
    = "POST";
        
    //傳遞Form表單參數
        params = {"method""save""id": NaN, "productName": productName.text,
                     
    "remark": remark.text}
    ;
        productService.cancel();
        productService.send(params);
        clearInputFields();
    }

    /**
     * 
     * 更新記錄的事件處理函數
     * 
     * 
    */

    public function updateHandler(event:AdvancedDataGridEvent):void
    {
        
    //取消的話不更新
        if(event.reason == "cancelled")
        
    {
            
    return;
        }

        
    //重新注冊
        productService.removeEventListener(ResultEvent.RESULT,resultHandler);
        productService.addEventListener(ResultEvent.RESULT,insertItemHandler);
         
    //得到輸入后的新數據    
         var newData:String = (TextInput(event.currentTarget.itemEditorInstance)).text;
         
    //得到輸入前的三個數據
         var _id : int  = this.grid1.selectedItem["id"];
         var _productName :String 
    = this.grid1.selectedItem["productName"];
         var _remark :String 
    = this.grid1.selectedItem["remark"];
         
    //第二列為產品名稱
         if(event.columnIndex == 1)
         
    {
             _productName 
    = newData;
         }

         
    //第三列為備注
         if(event.columnIndex == 2)
         
    {
             _remark 
    = newData;
         }

         params 
    = {"method""update""id": _id,"productName":_productName,"remark":_remark};
         productService.cancel();
         productService.send(params);
    }


    /**
     * 刪除的方法
     * 
    */

    public function remove() : void
    {
        var index:
    int = this.grid1.selectedIndex;
        
    if(index == -1)
        
    {
             Alert.show(
    "您沒有選擇任何記錄","提示");
             
    return;
        }

         Alert.yesLabel 
    = "確定";
         Alert.cancelLabel 
    = "取消";
         Alert.show(
    "確定要刪除嗎?","提示",Alert.YES|Alert.CANCEL,this,defaultCloseHandler);
    }

    /**
     * 處理選擇是否刪除后的事件
     * 
     * 
    */

    public function defaultCloseHandler(event:CloseEvent):void
    {
         
    //如果點擊了確定
         if(event.detail == Alert.YES)
         
    {
              productService.removeEventListener(ResultEvent.RESULT,resultHandler);
             productService.addEventListener(ResultEvent.RESULT,insertItemHandler);
              var id : String  
    = this.grid1.selectedItem["id"];
             params 
    = {"method""remove""id": id};
             productService.cancel();
             productService.send(params);
         }

    }

    /**
     * 清除form中的屬性值
     * 
    */

    private function clearInputFields():void
    {
        productName.text 
    = "";
        remark.text 
    = "";
    }

    源碼下載地址:
    點擊下載


    posted on 2008-11-13 16:04 々上善若水々 閱讀(4714) 評論(2)  編輯  收藏

    評論

    # re: Flex3 CRUD 與Java后臺交互 完整Demo[未登錄]  回復  更多評論   

    基于WEBSERVICE的應用 網絡傳輸速度很慢,為什么不用 BlazeDS 呢?
    BlazeDS 提供 RPC 和 MESSAGE 等服務,做應用開發還是不錯的。
    2008-11-14 09:52 | conjs

    # re: Flex3 CRUD 與Java后臺交互 完整Demo[未登錄]  回復  更多評論   

    服務端的代碼也順便放出來吧
    2011-11-11 16:54 | 大頭

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 中美日韩在线网免费毛片视频| 亚洲永久在线观看| 青娱乐在线免费观看视频| 麻豆国产人免费人成免费视频| 亚洲综合无码一区二区痴汉| 最新猫咪www免费人成| 亚洲精品无码久久久久久| 最近2019中文字幕免费看最新| 亚洲一区二区三区高清不卡| 成人a视频片在线观看免费| 亚洲AV香蕉一区区二区三区| 可以免费观看的一级毛片| 又硬又粗又长又爽免费看 | 久久水蜜桃亚洲AV无码精品| 成人免费无码精品国产电影| 无套内射无矿码免费看黄 | 亚洲欧洲精品视频在线观看| 精品国产无限资源免费观看| 亚洲va成无码人在线观看| 午夜爱爱免费视频| 一个人免费观看视频在线中文| 亚洲精品乱码久久久久久中文字幕 | 四虎影在线永久免费四虎地址8848aa| 麻豆va在线精品免费播放| 亚洲精品国产精品乱码不99| 精品无码无人网站免费视频| 亚洲а∨天堂久久精品9966 | 无码人妻一区二区三区免费看 | 久久精品国产亚洲精品| 久久久精品免费视频| 成人区精品一区二区不卡亚洲| 亚洲日韩在线第一页| 久久免费看黄a级毛片| 羞羞视频免费观看| 中文字幕亚洲精品| 国产aa免费视频| 99精品视频免费观看| 羞羞视频免费网站入口| 久久久久久亚洲精品成人| 免费中文字幕在线观看| 8x8×在线永久免费视频|