flash和asp分页的一点心得与flash脚本
程序员文章站
2023-11-20 20:40:40
看了这个的一些帖子,学到了很多东西,现在和大家一起分享 flash现在只是一个显示的功能,过程中看了一些别人的东西,觉得分页似乎有很简单的实现方式.基本上都...
看了这个的一些帖子,学到了很多东西,现在和大家一起分享
flash现在只是一个显示的功能,过程中看了一些别人的东西,觉得分页似乎有很简单的实现方式.基本上都是用xml传送的.显示用 list 组件和 datagrid 都可以,这里我用的是动态文本,因为觉得组件用的太麻烦了.所以用了蠢办法,没办法,找不到更好的~~~下面代码中的 list[..]就是动态文本的名趁,一次显示15条
//显示程序如下:
//桢名称 "list"
stop();
var loglist = new xml();
var logroot;
var page:number; //当前页
var tpage:number; //保存总页
var tnum:number; //总日志数
var logname:string; //日志分类名称
var temp;
var i:number;
//这里我用一个数组储存了对应的id号,如果用组件就不用这么麻烦了
var ids = new array(15);
//两个按钮,用来翻页
bn_u.enabled = false;
bn_d.enabled = false;
if (page == null or page<1) {
page = 1;
}
//------------------------------
//清除函数;
function myclear() {
for (i=1; i<16; i++) {
ids[i-1] = 0;
list["lbn"+i]._visible = false;
list["ltitle"+i].text = "";
list["lauthor"+i] = "";
list["ltime"+i] = "";
}
}
//--------------------------------------
//--------------------------------------
myclear();
pageinfo.text = "正在读取数据...";
loglist.ignorewhite = true;
loglist.load("tree_list.asp?log_cat="+cat_id+"&page="+page);
//------------------------------------------------
//get数据函数
function logfunc(e) {
if (e) {
logroot = loglist.firstchild;
logname = logroot.attributes.logname;
tpage = logroot.attributes.tpage;
tnum = logroot.attributes.tnum;
temp = logroot.firstchild;
list.ltitle1.text = ftitle(temp.firstchild.nodevalue, 22);
list.lauthor1 = temp.attributes.author;
list.ltime1 = temp.attributes.addtime;
ids[0] = temp.attributes.id;
i = 1;
list.lbn1._visible = true;
//循环读取节点
while (temp.nextsibling != null) {
temp = temp.nextsibling;
i++;
//如果是用别的方式显示,只需要改一下就可以了
ids[i-1] = temp.attributes.id;
list["lbn"+i]._visible = true;
list["ltitle"+i].text = ftitle(temp.firstchild.nodevalue, 22);
list["lauthor"+i] = temp.attributes.author;
list["ltime"+i] = temp.attributes.addtime;
}
pageinfo.text = logname+"共有日志"+tnum+"篇 共"+tpage+"页 当前是第"+page+"页 "+"15/页";
bn_u.enabled = true;
bn_d.enabled = true;
} else {
pageinfo.text = "当前没有日志。";
list.ltitle1.text = "读取数据出错,请联系管理员!";
}
}
//一个自定义的格式标题的函数,怕标题太长
function ftitle(s, n) {
if (length(s)>n) {
s = s.substring(0, n-1)+"...";
}
return s;
}
loglist.onload = logfunc;
//-------------------------------------
//按钮动作
bn_up = new object();
//按钮事件,判断页面大小是否超过值
bn_up.click = function(evt) {
if (page>1) {
_root.page--;
gotoandplay("cycle");
} else {
stop();
}
};
bn_d = new object();
bn_d.click = function(evt) {
if (page<tpage) {
_root.page++;
gotoandplay("cycle");
} else {
stop();
}
};
bn_u.addeventlistener("click", bn_up);
bn_d.addeventlistener("click", bn_d);
桢"cycle"只有一个话:
gotoandplay("list");
//形成一个简单的循环
tree_list.asp:
//log 是我的日志表 ,log_cat是分类表
下面的asp很清楚了
<?xml version="1.0" encoding="gb2312"?>
<%
response.contenttype = "text/xml"
response.cachecontrol = "no-cache"
response.addheader "pragma", "no-cache"
response.expires = 0
dim log_cat,page,pagesize,tnum,tpage,log_name
page=treerequest("page",1)
log_cat=treerequest("log_cat",1)
pagesize=15
call tree_rs
if log_cat=0 or log_cat="" then
sql="select * from log order by written_time desc,log_id desc"
else
sql="select * from log,log_cat where log.cat_id=log_cat.id and cat_id="&log_cat&" order by written_time desc,log_id desc"
end if
rs.open sql,conn,1,1
rs.pagesize=pagesize
tnum=rs.recordcount
tpage=int(tnum/pagesize*-1)*-1
if page="" then page=1
if tnum<>0 then rs.absolutepage=page
if log_cat=0 or log_cat="" then
log_name="[全部分类]"
else
log_name="["&rs("cat_name")&"]"
end if
'以下输出xml
'------------------------------------------------
response.write("<tree logname='"&log_name&"' tnum='"&tnum&"' tpage='"&tpage&"'>")
if rs.eof then
rs.close
else
do while not rs.eof and pagesize>0
response.write("<trees author='"&rs("log_author")&"' addtime='"&rs("written_time")&"' id='"&rs("log_id")&"'>")
response.write("<![cdata["&rs("log_tittle")&"]]></trees>")
pagesize=pagesize-1
rs.movenext
loop
rs.close
end if
//关闭rs
call tree_rsclose
call tree_conclose
response.write("</tree>")
%>
flash现在只是一个显示的功能,过程中看了一些别人的东西,觉得分页似乎有很简单的实现方式.基本上都是用xml传送的.显示用 list 组件和 datagrid 都可以,这里我用的是动态文本,因为觉得组件用的太麻烦了.所以用了蠢办法,没办法,找不到更好的~~~下面代码中的 list[..]就是动态文本的名趁,一次显示15条
//显示程序如下:
//桢名称 "list"
stop();
var loglist = new xml();
var logroot;
var page:number; //当前页
var tpage:number; //保存总页
var tnum:number; //总日志数
var logname:string; //日志分类名称
var temp;
var i:number;
//这里我用一个数组储存了对应的id号,如果用组件就不用这么麻烦了
var ids = new array(15);
//两个按钮,用来翻页
bn_u.enabled = false;
bn_d.enabled = false;
if (page == null or page<1) {
page = 1;
}
//------------------------------
//清除函数;
function myclear() {
for (i=1; i<16; i++) {
ids[i-1] = 0;
list["lbn"+i]._visible = false;
list["ltitle"+i].text = "";
list["lauthor"+i] = "";
list["ltime"+i] = "";
}
}
//--------------------------------------
//--------------------------------------
myclear();
pageinfo.text = "正在读取数据...";
loglist.ignorewhite = true;
loglist.load("tree_list.asp?log_cat="+cat_id+"&page="+page);
//------------------------------------------------
//get数据函数
function logfunc(e) {
if (e) {
logroot = loglist.firstchild;
logname = logroot.attributes.logname;
tpage = logroot.attributes.tpage;
tnum = logroot.attributes.tnum;
temp = logroot.firstchild;
list.ltitle1.text = ftitle(temp.firstchild.nodevalue, 22);
list.lauthor1 = temp.attributes.author;
list.ltime1 = temp.attributes.addtime;
ids[0] = temp.attributes.id;
i = 1;
list.lbn1._visible = true;
//循环读取节点
while (temp.nextsibling != null) {
temp = temp.nextsibling;
i++;
//如果是用别的方式显示,只需要改一下就可以了
ids[i-1] = temp.attributes.id;
list["lbn"+i]._visible = true;
list["ltitle"+i].text = ftitle(temp.firstchild.nodevalue, 22);
list["lauthor"+i] = temp.attributes.author;
list["ltime"+i] = temp.attributes.addtime;
}
pageinfo.text = logname+"共有日志"+tnum+"篇 共"+tpage+"页 当前是第"+page+"页 "+"15/页";
bn_u.enabled = true;
bn_d.enabled = true;
} else {
pageinfo.text = "当前没有日志。";
list.ltitle1.text = "读取数据出错,请联系管理员!";
}
}
//一个自定义的格式标题的函数,怕标题太长
function ftitle(s, n) {
if (length(s)>n) {
s = s.substring(0, n-1)+"...";
}
return s;
}
loglist.onload = logfunc;
//-------------------------------------
//按钮动作
bn_up = new object();
//按钮事件,判断页面大小是否超过值
bn_up.click = function(evt) {
if (page>1) {
_root.page--;
gotoandplay("cycle");
} else {
stop();
}
};
bn_d = new object();
bn_d.click = function(evt) {
if (page<tpage) {
_root.page++;
gotoandplay("cycle");
} else {
stop();
}
};
bn_u.addeventlistener("click", bn_up);
bn_d.addeventlistener("click", bn_d);
桢"cycle"只有一个话:
gotoandplay("list");
//形成一个简单的循环
tree_list.asp:
//log 是我的日志表 ,log_cat是分类表
下面的asp很清楚了
<?xml version="1.0" encoding="gb2312"?>
<%
response.contenttype = "text/xml"
response.cachecontrol = "no-cache"
response.addheader "pragma", "no-cache"
response.expires = 0
dim log_cat,page,pagesize,tnum,tpage,log_name
page=treerequest("page",1)
log_cat=treerequest("log_cat",1)
pagesize=15
call tree_rs
if log_cat=0 or log_cat="" then
sql="select * from log order by written_time desc,log_id desc"
else
sql="select * from log,log_cat where log.cat_id=log_cat.id and cat_id="&log_cat&" order by written_time desc,log_id desc"
end if
rs.open sql,conn,1,1
rs.pagesize=pagesize
tnum=rs.recordcount
tpage=int(tnum/pagesize*-1)*-1
if page="" then page=1
if tnum<>0 then rs.absolutepage=page
if log_cat=0 or log_cat="" then
log_name="[全部分类]"
else
log_name="["&rs("cat_name")&"]"
end if
'以下输出xml
'------------------------------------------------
response.write("<tree logname='"&log_name&"' tnum='"&tnum&"' tpage='"&tpage&"'>")
if rs.eof then
rs.close
else
do while not rs.eof and pagesize>0
response.write("<trees author='"&rs("log_author")&"' addtime='"&rs("written_time")&"' id='"&rs("log_id")&"'>")
response.write("<![cdata["&rs("log_tittle")&"]]></trees>")
pagesize=pagesize-1
rs.movenext
loop
rs.close
end if
//关闭rs
call tree_rsclose
call tree_conclose
response.write("</tree>")
%>