天天看點

顯視flex DataGrid的兩種方法

顯視flex DataGrid的兩種方法

<?xml version="1.0" encoding="utf-8"?>  

<s:application xmlns:fx="http://ns.adobe.com/mxml/2009"  creationcomplete="showemployeeinforlist()"  

           xmlns:s="library://ns.adobe.com/flex/spark"   

           xmlns:mx="library://ns.adobe.com/flex/mx"  width="100%" height="100%" xmlns:flexas="flexas.*">  

    <fx:declarations>  

        <!-- 将非可視元素(例如服務、值對象)放在此處 -->  

        <s:remoteobject destination="employeeservice" fault="initfault(event)"  endpoint="http://localhost:8088/phmis/messagebroker/amf"  

                        result="initsuccess(event)" id="employeeservicero"/>  

    </fx:declarations>  

    <fx:script>  

        <![cdata[ 

            import flexas.*; 

            import mx.collections.arraycollection; 

            import mx.controls.alert; 

            import mx.events.closeevent; 

            import mx.managers.popupmanager; 

            import mx.rpc.events.faultevent; 

            import mx.rpc.events.resultevent; 

            import mxml.component.add; 

            import mxml.component.infowindow; 

            [bindable] 

            private var dp:arraycollection=new arraycollection(); 

            private var all:int=0; 

            private var count:int=0; 

            private var k:int=10; 

            private var step:int=10; 

            public var resx:int = capabilities.screenresolutionx;   

            protected function showemployeeinforlist():void{ 

//              employeeservicero.listall(0,10); 

                employeeservicero.listalls(0,10); 

//              employeeservicero.listall(); 

            } 

            protected function initsuccess(event:resultevent):void 

            { 

//              var arr:arraycollection=event.result as arraycollection; 

                dp.removeall(); 

                dp =event.result as arraycollection; 

                if(this.dp != null && this.dp.length>=1){ 

//                  dg.selectedindex = 0; 

                } 

//              all = 0; 

//              var arrlength = arr.length-1; 

//                   

//              all = int(arr[arrlength]); 

//              if(arr != null){ 

////                    alert.show("all="+all); 

//              } 

//               

//              for(var i:int=0;i<arrlength;i++){ 

//                  var o:object=new object(); 

//                  o.employeeid=arr[i][0]; 

//                  o.username=arr[i][1]; 

//                  o.sex=arr[i][2]; 

//                  o.birthdate=arr[i][3]; 

//                  o.cardid=arr[i][4]; 

//                  o.phone=arr[i][5];   

//                  o.address=arr[i][6]; 

//                  o.departmentid=arr[i][7]; 

//                  o.postid=arr[i][8]; 

//                  o.workfromdate=arr[i][9]; 

//                  o.degree=arr[i][10]; 

//                  o.politics=arr[i][11]; 

//                  o.skills=arr[i][12]; 

//                  o.remark=arr[i][13]; 

//                  dp.additem(o); 

            protected function initfault(event:faultevent):void 

                alert.show("錯誤"+event.message); 

                alert.show("加載資料清單錯誤"); 

            public function $f_viewonerecord(obj:object):void{ 

                var w:infowindow=new infowindow(); 

                popupmanager.addpopup(w,this); 

                popupmanager.centerpopup(w); 

                w.data=obj; 

            //彈出增加對話框 

            protected function addonerecord(event:mouseevent,resx:number):void 

                var adddialog :employeeinfoadd = new employeeinfoadd(); 

                popupmanager.addpopup(adddialog,this); 

                popupmanager.centerpopup(adddialog); 

                adddialog.data ="width";//+ resx; 

            //删除一條記錄 

            protected function deleteonerecord(event:mouseevent):void 

                if(dg.selecteditem==null){ 

                    return ; 

                }else{ 

                    alert.show("确定删除該記錄嗎?","提示",1|2,this,chandler); 

            private function chandler(e:closeevent):void{ 

                if(e.detail==alert.yes){ 

                    var o:object=dg.selecteditem; 

//                  remote1.deleteitem(int(o.num)); 

            public   function add(){ 

                employeeservicero.add("bbbbbbbbbbb","name"); 

//              alert.show("add = "); 

            public function saveitem(names:string,age:int,sex:string,tel:string,dept:string,job:string,birthday:string,comeday:string,workage:int,ids:string,home:string,edu:string,hobby:string,etc:string):void{ 

//              remote1.saveitem(names,age,sex,tel,dept,job,birthday,comeday,workage,ids,home,edu,hobby,etc); 

            private function tofirstpage(event:mouseevent):void{ 

                $f_list(0,10);//改成由背景處理不用傳參數 

                count = 0; 

            private function topreviouspage(event:mouseevent):void{ 

                $f_list(step*(count-1),step*count); 

                count --; 

            private function tonextpage(event:mouseevent):void{ 

                $f_list(step*(count+1),step*(count+2)); 

                count ++; 

            private function tolastepage(event:mouseevent):void{ 

                var index:int = ((step-(all%step))+all)/step; //總的頁數 

                $f_list(step*(index-1),all); 

                count = index -1;    

            private function $f_list (start:int,end:int):void{ 

//              remote1.getinfo(start,end); 

        ]]>  

    </fx:script>  

    <s:panel height="100%" width="100%" right="0" top="0" bottom="0" left="0" >  

            <s:vgroup  right="0" bottom="0" left="0" top="0" height="100%" width="100%">    

                <mx:datagrid width="100%" height="350" id="dg" dataprovider="{dp}" left="0" allowmultipleselection="true" editable="true">  

                    <mx:columns>  

                        <flexas:checkboxcolumn datafield="isselected" width="25" id="selected"   

                                               draggable="false" resizable="false" sortable="false"   

                                               headerrenderer="{new classfactory(checkboxheader)}"   

                                               itemrenderer="{new classfactory(checkboxrenderer)}">  

                        </flexas:checkboxcolumn>  

                        <mx:datagridcolumn headertext="人員編号" datafield="employeeid"  editable="false">  

                            <mx:itemrenderer>  

                                <fx:component>  

                                    <mx:linkbutton label="{data.employeeid}" click="this.outerdocument.$f_viewonerecord(data);" >  

                                    </mx:linkbutton>  

                                </fx:component>  

                            </mx:itemrenderer>  

                        </mx:datagridcolumn>  

                        <mx:datagridcolumn headertext="人員姓名" datafield="username"  editable="false"/>  

                        <mx:datagridcolumn headertext="性别" datafield="sex"/>  

                        <mx:datagridcolumn headertext="出生日期" datafield="birthdate"/>  

                        <mx:datagridcolumn headertext="身份證号碼" datafield="cardid"/>  

                        <mx:datagridcolumn headertext="聯系電話" datafield="phone"/>  

                        <mx:datagridcolumn headertext="位址" datafield="address"  editable="false"></mx:datagridcolumn>  

                        <mx:datagridcolumn headertext="所屬部門" datafield="departmentid"  editable="false"></mx:datagridcolumn>  

                        <mx:datagridcolumn headertext="工作崗位" datafield="postid"  editable="false"></mx:datagridcolumn>  

                        <mx:datagridcolumn headertext="參加工作時間" datafield="workfromdate"  editable="false"></mx:datagridcolumn>  

                        <mx:datagridcolumn headertext="教育程度" datafield="degree"  editable="false"></mx:datagridcolumn>  

                        <mx:datagridcolumn headertext="政治面貌" datafield="politics"  editable="false"></mx:datagridcolumn>  

                        <mx:datagridcolumn headertext="職業技能" datafield="skills"  editable="false"></mx:datagridcolumn>  

                        <mx:datagridcolumn headertext="備注" datafield="remark"  editable="false"></mx:datagridcolumn>  

                    </mx:columns>  

                </mx:datagrid>  

                <mx:hbox verticalalign="middle" horizontalalign="center" height="36" width="100%" bottom="10" left="0" top="50" >  

                    <s:label text="共有:"/>  

                    <s:label text="{all}"/>  

                    <s:label text="條記錄"/>  

                    <s:label text="目前第:"/>  

                    <s:label text="{count+1}"/>  

                    <s:label text="頁"/>  

                    <s:button label="增加" click="add()"/>  

                    <s:button label="第一頁" enabled="{count>0?true:false}" click="tofirstpage(event)"/>  

                    <s:button label="上一頁" enabled="{count>0?true:false}" click="topreviouspage(event)"/>  

                    <s:button label="下一頁" enabled="{(count+1)*step+1> all?false:true}" click="tonextpage(event)"/>  

                    <s:button label="最後頁" enabled="{(count+1)*step+1> all?false:true}" click="tolastepage(event)"/>  

                    <s:button label="删除" click="deleteonerecord(event)"/>  

                </mx:hbox>  

            </s:vgroup>  

    </s:panel>  

</s:application>