分页,显示条数
<?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>