XDownPage2.0使用简单例子一
XDownPage2.0使用简单例子一
XDownPage2.0使用简单例子一 有朋友问关于XdownPage2.0的使用的问题。我现在举一个简单的例子,从我的程序中摘出来的。(太忙,有时间再举稍稍复杂的例子)
四个文件:
conn.asp 数据库联接代码
config.asp 一段关于排序相关的代码
pages.asp 分页代码
index.asp 主程序
排序时用到的两个图片:
http://blog.csdn.net/images/blog_csdn_net/precipitant/36234/o_sort_asc.gif
http://blog.csdn.net/images/blog_csdn_net/precipitant/36234/o_sort_desc.gif
为了精简代码,我将很多与本功能无关的代码都去掉了,样式代码也去掉了,所以界面很难看。
'------------------------------------
''' conn.asp
'------------------------------------
dbuser='scott'
dbpwd='tiger'
dbsource='oracleDB'
Set conn = Server.CreateObject('ADODB.Connection')
conn.CommandTimeout =60
connstr='Provider=MSDAORA.1;User ID='&dbuser&'; Password='&dbpwd&'; Data Source='&dbsource
conn.Open connstr
sub CloseConn()
conn.close
set conn=nothing
end sub
'------------------------------------
''' config.asp
'------------------------------------
sImageDir='/' & getRoot() & '/images/' '图片路径
upOrderFlag='<img border=0 src='' &sImageDir & 'sort_asc.gif'>' '升序排列显示图标
downOrderFlag='<img border=0 src='' &sImageDir & 'sort_desc.gif'>' '降序排列显示图标
'获得当前连接的排序方向
function getOrderDir(fn,ofn,oDir)
dim tDir
tDir='desc'
if(lcase(fn)=lcase(ofn)) then
if(lcase(oDir)='asc') then
tDir='desc'
else
tDir='asc'
end if
end if
getOrderDir=tDir
end function
'书写排序指示图标
function writeOrderDir(fn,ofn,oDir)
dim tDir
if(lcase(fn)=lcase(ofn)) then
if(lcase(oDir)='asc') then
tDir=UpOrderFlag
else
tDir=downOrderFlag
end if
end if
writeOrderDir=tDir
end function
'添加排序列头
sub WriteOrderHeader(pHeaderTitle,pOrderField,tOrderField,tOrderDir)
Response.Write '<span onclick=''gotoOrder('' & pOrderField & '','' & getOrderDir(pOrderField,tOrderField,tOrderDir) & '')'' style='width:90%;cursor:default'>' & pHeaderTitle & ' ' & writeOrderDir(pOrderField,tOrderField,tOrderDir) & '</span>'
end sub
'获得当前虚拟目录的名字
function getRoot()
url=Request.ServerVariables('URL')
url=right(url,len(url)-1)
getRoot= mid(url,1,instr(url,'/')-1)
end function
' (3) asp->htm 过滤特殊字符,(单,双引号以及其他html敏感字符)以防止 asp 字符串 嵌入到 htm 中显示数据时丢失数据
function FilterParam3(str1)
fp1=str1
if isnull(fp1) or isempty(fp1) then fp1=''
fp1=server.HTMLEncode(fp1)
FilterParam3=fp1
end function
'------------------------------------
''' pages.asp
'------------------------------------
'分页代码 靠过来就可以了,别忘了将一些忘了注释的说明文字注释掉
'------------------------------------
''' index.asp
'------------------------------------
<%Response.Buffer=-1%>
<!--#include file='conn.asp'-->
<!--#include file='config.asp'-->
<!--#include file='pages.asp'-->
<%
'费率管理
'writer:northsnow
'create date :050802
%>
<script language='javascript'>
//执行动态排序
function gotoOrder(uOrderField,uOrderDir)
{
frmHidden.currentpage.value='1';
frmHidden.flag.value='query';
frmHidden.orderField.value=uOrderField;
frmHidden.orderDir.value=uOrderDir;
frmHidden.submit();
}
//执行查询前将查询条件写到隐藏表单
function query()
{
var oFormHidden=document.frmHidden;
if(!oFormHidden) return false;
oFormHidden.currentpage.value='';
oFormHidden.flag.value='query';
oFormHidden.sm.value=frmList.sm.value;
oFormHidden.cj.value=frmList.cj.value;
oFormHidden.cj_code.value=frmList.cj_code.value;
oFormHidden.submit();
}
//重置查询条件
function myreset()
{
frmList.sm.value='';
frmList.cj.value='';
frmList.cj_code.value='';
}
</script>
<% 'on error resume next
'获取参数
dim cx,cj,cj_code
dim currentpage,flag,pagesize,rsTotalCount,orderDir,orderField
currentpage=trim(request.form('currentpage'))
div_p=trim(request('div_p'))
flag=trim(request('flag'))
pagesize=trim(request('pagesize'))
rsTotalCount=trim(request('rsTotalCount'))
orderDir=trim(Request('orderdir'))
orderField=trim(Request('orderfield'))
cx=Request('cx')
cj=trim(request('cj'))
cj_code=trim(request('cj_code'))
sm=trim(request('sm'))
%>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
</head>
<body topmargin='4'><div align=center><span id='qSpan'>
<form name='frmList' action='#' method='post'>
<span <br>
<fieldset style='width:100%;padding:'2px 2px'' align='center' align=right style='border:0px'>
<a href='#' onclick='javascript:query()' tabindex='1'>查询</a>|
<a href='#' onClick='javascript:myresetcx()' >重置</a>
</legend>
<table width='100%' align='center' >
<tr >
<td valign='middle' align='center' >
<table width='100%' border='0' cellspacing='0' cellpadding='0' >
<tr>
<td align='center' width='50%'>费率说明:
<input name='sm' type='text' value='<%=sm%>'></td>
<td align='center' width='50%'>车间:
<input name='cj' type='text' readonly size='22'><input name='cj_code' type='hidden' size='22'><a href='#' onclick='javascript:selectcj()'><img src="http://doc.readmen.com/images/viewnew.gif" alt='查找车间' border='0'></a></td>
</tr>
</table>
</td>
</tr></form>
</table>
</fieldset></span>
<table width=100% align=center border='0' cellpadding='0' cellspacing='0'>
<form name='manForm'><tr><td align=center valign=top><table border='0' width='100%' cellspacing='0' cellpadding='0'>
<%
'读取数据
set rs=server.CreateObject('adodb.recordset')
rs.CursorLocation=3
'//形成最后的sql
sql='select * from V_FL_201 where 1=1 '
if cj_code<>'' then
sql=sql&' and dept_code=''&cj_code&'''
end if
if sm<>'' then
sql=sql&' and sm like '%'&sm&'%''
end if
'分析排序
orderStr=''
if orderField<>'' then
orderStr=' order by ' & orderField
if orderDir<>'' then orderStr=orderStr & ' ' & orderDir
end if
if orderStr='' then orderStr=' order by dept_name'
if orderStr<>'' then sql=sql & orderStr
if pagesize='' then pagesize=15
Set mypage=new xdownpage '创建对象
mypage.getconn=conn '得到数据库连接
mypage.pagesize=pagesize '设置每一页的记录条数据为5条
mypage.totalRecordCount=rsTotalCount '传递总记录数,分页的时候不用每次都去查一次
mypage.getsql=sql
mypage.GetSubmitForm='frmHidden'
Response.write(mypage.GetSubmitForm1())
set rs=mypage.getrs() '返回Recordset
%>
<tr height='28'>
<td align=center valign=top>
<table cellspacing='1' cellpadding=0 bordercolordark=#FFFFFF width='100%' bordercolorlight=#014E4B>
<tr height='25'>
<td valign='center' align='left' width='6%' background='../images/topbg.gif'>
<%WriteOrderHeader '车间','dept_name',OrderField,OrderDir%></td>
<td valign='center' align='left' width='6%' background='../images/topbg.gif'>
<%WriteOrderHeader '说明','sm',OrderField,OrderDir%></td>
<td valign='center' align='left' width='6%' background='../images/topbg.gif'>
<%WriteOrderHeader '费率','fl',OrderField,OrderDir%></td>
</tr>
<%i=1
do while not rs.EOF %>
<tr <% if i mod 2=0 then %> <%else %> <%end if %>>
<td height='23' align='center' valign='top' readonly title='<%=FilterParam3(rs('dept_name'))%>'>
<input name='cj_name<%=i%>' size='18' value='<%=FilterParam3(rs('dept_name'))%>' readonly height='23' align='center'>
<input name='sm<%=i%>' style='width:100%' maxlength='30' value='<%=FilterParam3(rs('sm'))%>' height='23' align='center'>
<input name='fl<%=i%>' style='width:100%' value='<%=FilterParam3(rs('fl'))%>'
<% i=i+1
rs.MoveNext
loop%>
</table>
</td>
</tr>
<tr><td><% mypage.showpage()%>
<%mypage.ShowPageSizeChange()%></td></tr>
</table>
<td></tr></form>
</table>
<!--隐藏表单,用于页面导航和查询。-->
<form name='frmHidden' method='post' action='#'>
<input type='hidden' id='div_p' name='div_p' value='<%=div_p%>'>
<input type='hidden' name='flag' value='' ID='Hidden1'>
<input type='hidden' name='pagesize' value='<%=pagesize%>' ID='1'>
<input type='hidden' name='currentpage' value='<%=currentpage%>' ID='Hidden2'>
<input type='hidden' name='rsTotalCount' value='<%=rsTotalCount%>' ID='2'>
<input type='hidden' name='orderField' value='<%=orderField%>' ID='Hidden7'>
<input type='hidden' name='orderDir' value='<%=orderDir%>' ID='Hidden8'>
<input type='hidden' name='sm' value='<%=sm%>'>
<input type='hidden' name='cj' value='<%=cj%>'>
<input type='hidden' name='cj_code' value='<%=cj_code%>'>
</form>
</body>
</html>
这点代码的输出界面如下: