分页,显示条数

分页,显示条数

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" implements="war.view.interfaces.IDispose" >
    <mx:Script>
	   <![CDATA[	
		
   		import mx.events.CloseEvent;
 		import mx.controls.Alert;
		import war.net.ServiceApi;
	         import war.net.Service;
		import war.events.WarEventDispatcher;
		import war.events.SystemManage;	
		import mx.collections.ArrayCollection;
		private var ser:Service = Service.getInstance(); 
	         private var dispatcher:WarEventDispatcher = WarEventDispatcher.getInstance();
   		
   		private var acceptData:Object = {};
   		private var dataArr:Array = new Array();
   		//从中取出删除的键
   		private var tempDataArr:Array;
   		//临时储存被编辑公告数据的键值
   		private var tempNKey:String;
   		
	         private var pages:uint = 1;//总页数
		public var ePage:uint = 1;//当前页数
		private const ENUM:uint = 5;//每页显示的行数      		
			
   		public function init():void
   		{
   			//添加
   			dispatcher.addEventListener(SystemManage.EVENT_ADD_NOTICE_COMPLETE,addNoticeHandler);
   			//删除
   			dispatcher.addEventListener(SystemManage.EVENT_DEL_NOTICE_COMPLETE,delNoticeHandler);
   			//编辑
   			dispatcher.addEventListener(SystemManage.EVENT_EDIT_NOTICE_COMPLETE,editNoticeHandler);
   			//获取列表
   			dispatcher.addEventListener(SystemManage.EVENT_GET_NOTICES_COMPLETE,addNoticeHandler);
   			//更新公告
   			dispatcher.addEventListener(SystemManage.EVENT_MODIFY_NOTICE_COMPLETE,addNoticeHandler);
   			ser.send(ServiceApi.SYSTEM_GET_NOTICES,"");	
   		}
   		
   		public function dispose():void
   		{
   			dispatcher.removeEventListener(SystemManage.EVENT_MODIFY_NOTICE_COMPLETE,addNoticeHandler);
   			dispatcher.removeEventListener(SystemManage.EVENT_GET_NOTICES_COMPLETE,addNoticeHandler);
   			dispatcher.removeEventListener(SystemManage.EVENT_EDIT_NOTICE_COMPLETE,editNoticeHandler);
   			dispatcher.removeEventListener(SystemManage.EVENT_ADD_NOTICE_COMPLETE,addNoticeHandler);
   			dispatcher.removeEventListener(SystemManage.EVENT_DEL_NOTICE_COMPLETE,delNoticeHandler);
   		}
   		
   		private function editNoticeHandler(event:SystemManage):void
   		{
   		    cavAdd.visible = false;  
    		    cavEdit.visible = true;
   		    var tempData:Object = new Object();
   		    tempData = event.data;
   		    texTitle.text = tempData['title'];
   		    texLink.text =tempData['link'];
   		    texContent.text = tempData['content'];
   		    tempNKey = tempData ['nid'];

   		} 
   		
   		private function delNoticeHandler(event:SystemManage):void
   		{
  			if(event.data.hasOwnProperty('errMsg'))
			{
				Alert.show(event.data['errMsg'],'提示');
				return;
			}
			  		
			var nKey:String = event.data['nKey']
			for(var i:int;i<tempDataArr.length;i++)
			{
				if(tempDataArr[i]['nid'] == nKey)
				{
					tempDataArr.splice(i, 1);
					break;
				}
			}
						
   		         dataArr = tempDataArr;
			if(dataArr.length%ENUM==0)
			{
				pages = dataArr.length/ENUM;
			}
			else
			{
				pages = dataArr.length/ENUM+1;
			}
			//当前页数 > 总页数,当前页取总页数为为值	
			pages = pages < 1 ? 1 : pages;			
			ePage = pages < ePage ? pages : ePage;
			
			
			//重新显示当前页数
			initData(ePage);
			//显示分页数据
			//pno.text = ePage+"/"+pages;
		         cavEdit.visible = false;
		         cavAdd.visible = true;
   		}
   		
   		private function addNoticeHandler(event:SystemManage):void
   		{   
                       //整理获得的数据
                          if(event.data.hasOwnProperty('errMsg'))
		    {
		        Alert.show(event.data['errMsg'],'提示');
		        return;
		    }
			
   	             acceptData = event.data;
   	             dataArr.splice(0,dataArr.length);
   	             for(var item:String in acceptData)
   	             {
   	        	        acceptData[item]['nid'] = item;
   	        	        dataArr.push(acceptData[item]);
   	             }
   		 	if(dataArr.length>1)
   		 	{
   		 	    dataArr.sortOn('nid',Array.DESCENDING);
   		 	}
   		 	
   			tempDataArr = dataArr.concat();
			if(dataArr.length%ENUM==0)
			{
				pages = dataArr.length/ENUM;
			}
			else
			{
				pages = dataArr.length/ENUM+1;
			}
			//当ePage < 1时, 程序赋值1
		    ePage = ePage < 1 ? 1 : ePage;
		    pages = pages < 1 ? 1 : pages;
		    
		    trace(pages);
		    initData(ePage);
//		    pno.text = ePage+"/"+pages;
   		}
   		
    	  		
		private function initData(index:uint):void
		{
			var gridArr:ArrayCollection = new ArrayCollection();
			//当数据有数据的时候, 
			if (dataArr.length > 0)
			{ 
				for(var i:int =(index-1)*ENUM;i<index*ENUM;i++)
				{ 
					var list:Object = dataArr[i];
					list['order'] = ENUM*(index-1)+i+1; 
					
					gridArr.addItem(list);
										
					//到达最大长度是,跳出   
					if(i == dataArr.length-1)
					{
					   break;
					}
				}			
			}

			grid.dataProvider = gridArr;
			
			///处理页数列表
			createPageList(ePage);
		}
   		
   		private function addHandler():void
   		{
   			if( title.text ==  "")
   			{
   				Alert.show("公告标题不能为空","提示!");
   				return;
   			}
   			var notice:Object = {};
   			notice['title'] = title.text;
   			notice['link'] = link.text;
   			notice['content'] = matter.text;
   			ser.send(ServiceApi.SYSTEM_ADD_NOTICE,notice);
   			clearHandler();
   		}
   		
   		private function clearHandler():void
   		{
   			title.text = "";
   			link.text = "";
   			matter.text = "";
   		}
   		
   		private function modifyHandler():void
   		{
   			
    		if( texTitle.text ==  "")
   			{
   				Alert.show("标题不能为空","提示!");
   				return;
   			}  			
   		   var modify:Object = {};
   		   modify['title'] = texTitle.text;
   		   modify['content'] = texContent.text;
   		   modify['link'] = texLink.text;
   		   modify['nKey'] = tempNKey;
   		   ser.send(ServiceApi.SYSTEM_MODIFY_NOTICE, modify);
   		   tempNKey = null;
   		   CleanUpHandler();
   		}
   		
   		private function CleanUpHandler():void
   		{
   			texTitle.text = "";
   			texLink.text = "";
   			texContent.text = "";
   			
   		}
   	
  		private function upPage():void
		{
			if(ePage <= 1)
			{
				Alert.show('当前是第一页','提示!');	
				return;
			}
			ePage--;
			initData(ePage);
			//pno.text = ePage+"/"+pages;
		}
		
		private function downPage():void
		{

			if(ePage >= pages)
			{
		 		Alert.show('当前是最后一页','提示!');				
				return;
			}
			ePage++;
			initData(ePage);
		}	 
  
		private function fristPage():void
		{
		    //第一页
		     ePage = 1;
                       initData(ePage);
		}
		
		private function lastPage():void
		{
			ePage = pages;
		 	initData(ePage);
		}
		
		//操作显示分页列表
		private function createPageList(ePage:uint):void
		{
	             //建一个数组做为combobox的数据源,用来跳转页
	               var pageArr:Array = new Array();
	             if (pages > 1){
		        for (var i:int=1; i <= pages; i++)
		        {
		        	pageArr.push({label:i.toString(), data:i});
		        }
	             }
	             else if (pages == 1)
	             {
	        	       pageArr.push({label:'1', data:1});
	             }
	             pno.selectedIndex = ePage;	        
	             pno.dataProvider = pageArr;            
		}  	
   	    
  	    private function onChange(event:Event):void
   	    {
   	       var tPage:uint = 0;
  	       tPage = uint(pno.selectedItem.data);
  	       ePage = tPage == 0 ? 1 : tPage;
 	       initData(ePage);
  	    }  
   	]]>
   </mx:Script>			

	<!-- 添加公告 -->
	<mx:Text x="10" y="10" text="游戏公告" fontSize="20"/>
	<mx:Canvas x="234" y="43" width="558" height="295"  id="cavAdd"  >
		<mx:Label x="42" y="6" text="添加公告" fontSize="16"/>
		<mx:Label x="44" y="32" text="公告标题:" fontSize="12"/>
		<mx:Label x="45" y="64" text="链接:"/>
		<mx:Label x="47" y="94" text="内容:"/>
		<mx:TextInput x="112" y="30" width="282" id="title"/>
		<mx:TextInput x="112" y="65" width="282" id="link" text="http://"/>
		<mx:TextArea x="114" y="104" width="400" height="143" id="matter" verticalScrollPolicy="on"/>
		<mx:Button x="275.5" y="258" label="添加" fontSize="12" click="addHandler()"/>
		<mx:Button x="362" y="258" label="清除" fontSize="12" click="clearHandler()"/>
	</mx:Canvas>
	
	<!--修改公告 -->
	<mx:Canvas x="205" y="4" width="785" height="291" id="cavEdit"  visible="false" >
    	<mx:Label x="46" y="16" text="公告标题:" fontSize="12"/>
		<mx:Label x="48" y="53" text="链接:"/>
		<mx:Label x="49" y="85" text="内容:"/>
		<mx:TextInput x="112" y="13" width="282" id="texTitle"/>
		<mx:TextInput x="112" y="56" width="282" id="texLink"/>
		<mx:TextArea x="112" y="88" width="435" height="161" id="texContent"/>
		<mx:Button x="334" y="255" label="修改" fontSize="12" click="modifyHandler()"/>
		<mx:Button x="458" y="254" label="清除" fontSize="12" click="CleanUpHandler()"/>
	</mx:Canvas>
	
	<!--显示页数 -->
 	  <mx:Canvas x="537" y="592" id="pag"  width="314" height="25">
			<mx:Button click="upPage()" width="50" height="25" x="71" label="上页"/>
				<!--
				 <mx:Canvas x="95" width="55" height="20">
					<mx:Text id="pno" y="2"  textAlign="center" x="26"/>
				 </mx:Canvas>
				 -->
				 
			<mx:Button x="200" width="50" height="25" click="downPage()" label="下页"/>
	       <mx:Button width="50" height="25" label="首页" x="17" click="fristPage()"/>
		   <mx:Button  width="50" height="25" label="末页" x="257" click="lastPage()"/>
		   			
		   <mx:ComboBox x="129" y="2" width="67" id="pno" change="onChange(event)"/>
				
	  </mx:Canvas>  

	<!-- 公告列表 -->	  
	 <mx:DataGrid x="229"  id="grid" y="358" width="582" height="226" verticalScrollPolicy="off" horizontalScrollPolicy="off">
	 	 <mx:columns>
	 	 	 <mx:DataGridColumn headerText="公告序号" dataField="order"/>
	 	 	 <mx:DataGridColumn headerText="公告标题" dataField="title"/>
	 	 	 <mx:DataGridColumn headerText="公告内连接" dataField="link"/>
	 	 	 <mx:DataGridColumn headerText="操作" itemRenderer="war.view.systemManage.sysItem"/>
	 	 </mx:columns>
	 </mx:DataGrid>

</mx:Canvas>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值