分享
 
 
 

[类] 分页类

王朝asp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

根据ado纪录集自动生成列表和分页,需要先生成recordset:rs_Grid

<%

'===========================================================

'分页类,大体思想由.Net的DataGrid的使用方式而来

'功能:自动生成datagrid列表头和内容,以及分页栏

'根据网友bubuy (澎湃 NoMoneyToBuy)得分页函数修改成类

'使用示例:

'dim DG

'dim Url

'dim Fld(2)

'dim FldName(2)

'dim FldWidth(2)

'Fld(0) = "ID"

'Fld(1) = "Title"

'Fld(2) = "Input_Date"

'FldName(0) = "编号"

'FldName(1) = "标题"

'FldName(2) = "录入日期"

'FldWidth(0) = "10%"

'FldWidth(1) = "60%"

'FldWidth(2) = "30%"

'set DG = new DataGrid

'DG.DataSource = rs_Grid

'DG.titleColor = "#DCE19D"

'DG.PageSize = 1

'DG.Fields = Fld

'DG.FieldsName = FldName

'DG.fieldWidth = FldWidth

'Url = request.ServerVariables("URL") & "?Param=testParameter"//存在原有参数的情况

'DG.Url = Url

'DG.Generate()

'=============Designed By windancer 2003.10.17===============

Class DataGrid

Private obj_RecordSet ' recordset

Private int_PageSize ' 每页纪录数

'两个数组保存数据库字段名和中文名称

Private Arr_Field ' 数据库字段

Private Arr_FieldName ' 字段显示名称()

Private Arr_FieldWidth ' 字段显示宽度

Private str_TitleColor ' 表头颜色#efffce

Private str_Url '请求的URL

Private str_Error ' 出错信息

Private Sub Class_Initialize()

int_PageSize = 10

str_TitleColor = "#ffffff"

str_Error = ""

End Sub

'===============================================================

'属性信息

'================================================================

'-----------------------------------

'数据源,暂时只支持RecordSet

'-----------------------------------

Public Property Let dataSource(obj)

set obj_RecordSet = obj

End Property

Public Property Let pageSize(intvalue)

int_PageSize = intvalue

End Property

Public Property Get pageSize

PageSize= int_Categoryid

End Property

Public Property Let Fields(Arr)

Arr_Field = Arr

End Property

Public Property Get Fields

Fields= Arr_Field

End Property

Public Property Let fieldsName(Arr)

Arr_FieldName = Arr

End Property

Public Property Get fieldsName

fieldsName= Arr_FieldName

End Property

Public Property Let fieldWidth(Arr)

Arr_FieldWidth = Arr

End Property

Public Property Get fieldWidth

fieldWidth= Arr_FieldWidth

End Property

Public Property Let titleColor(strvalue)

str_TitleColor = strvalue

End Property

Public Property Get titleColor

titleColor= str_TitleColor

End Property

'-----------------------------------------------------

'这个属性是为了保存Url路径

'如果当前路径带有参数,那么就用&Page=x,否则就用?Page=x

'------------------------------------------------------

Public Property Let Url(Strvalue)

str_Url = Strvalue

End Property

Public Property Get Url

Url= str_Url

End Property

'================================================================

'方法

'================================================================

'----------------------------------------------------------------

'显示当前错误

'----------------------------------------------------------------

Private Sub ShowLastError()

response.Write(str_Error)

response.End()

End Sub

'----------------------------------------------------------------

'Generate()

'利用ado分页

'-----------------------------------------------------------------

Public Sub Generate()

'----检查参数--------------------------

Check

'---------变量声明-----------------------------------

Dim FieldCount '显示字段

FieldCount = Ubound(Arr_Field) + 1

Dim CurrentPage '当前页

Dim PgCount '总页数

Dim RecCount '记录数,本来用rs.recordCount可以取到,保存下来效率会比较高

Dim HasOtherParam 'URL是否包含其他参数

Dim PageParam '当前分页Url参数

Dim PageInfomation '当前分页状态信息

Dim Seperator '设置分隔符

Seperator = " "

'-------------处理Url参数---------------------------

if instr(str_Url,"?")>0 then

HasOtherParam = true

PageParam = "&Page="

else

HasOtherParam = false

PageParam = "?Page="

end if

'----------获取当前页--------------------------------

CurrentPage = request.QueryString("Page")

if CurrentPage="" then

CurrentPage=1

else

CurrentPage=Cint(CurrentPage)

end if

'-----------处理数据源------------------------------

obj_RecordSet.PageSize = int_PageSize

RecCount = obj_RecordSet.RecordCount

PgCount = obj_RecordSet.PageCount

IF obj_RecordSet.Eof Then

Response.Write("<center><font stlye='font-size:14px;' color='#ff0000'>对不起,没有记录!</font></center>")

Else

'-----------处理ADO分页----------------------------

IF CurrentPage < 1 Then

CurrentPage = 1

Else

If CurrentPage>PgCount Then

CurrentPage = PgCount

End If

End IF

obj_RecordSet.absolutepage = CurrentPage

Response.Write("<table width=100% border='0' cellpadding='0' cellspacing='0' style='font-size:12px;'>")

'---------------翻页链接-----------------------------

Dim FirstLink,PrevLink,NextLink,LastLink '定义向上和向下翻的变量

'-----------------------首页-------------------------

if CurrentPage>1 then

FirstLink = "<a href='" & URL & PageParam & "1'>首页</a>"

PrevLink = "<a href='" & URL & PageParam & Cstr(CurrentPage-1) & "'>上一页</a>"

else

FirstLink = "首页"

PrevLink = "上一页"

end if

'------------下一页----------------

if CurrentPage<PgCount then

NextLink = "<a href='" & URL & PageParam & Cstr(CurrentPage+1) & "'>下一页</a>"

LastLink = "<a href='" & URL & PageParam & PgCount & "'>尾页</a>"

else

NextLink = "下一页"

LastLink = "尾页"

end if

PageInfomation = FirstLink & Seperator & PrevLink & Seperator & NextLink & Seperator & LastLink & Seperator & "每页" & Cstr(int_PageSize) & "条记录" & Seperator & "共" & PgCount & "页" & Seperator & "目前第" & CurrentPage & "页" & Seperator

Response.Write("<tr><td align=center>")

Response.Write("<table width='100%' border='1' cellpadding='2' cellspacing='2' bordercolor='#999999'>")

'---------------设置表头-----------------

Response.Write("<tr bgcolor='" & str_TitleColor & "'>")

Dim i

For i=0 to FieldCount -1

Response.Write("<td align='center' width='" & Arr_FieldWidth(i) & "'><font style='font-size:14px;'><b>" & Arr_FieldName(i) & "</b></font></td>")

Next

Response.Write("</tr>")

'---------------------输出内容---------------------------------

i=0

While (not obj_RecordSet.EOF) and i<int_PageSize

Dim Cursor

Response.Write("<tr>")

For Cursor = 0 to FieldCount -1

Response.Write("<td align='center'>" & obj_RecordSet(Arr_Field(Cursor)) & "</td>")

Next

Response.Write("</tr>")

i=i+1

obj_RecordSet.MoveNext

Wend

'------------------------输出分页条------------------------------------

Response.Write("<tr><td align='right' colspan='" & Cstr(FieldCount) & "'>" & PageInfomation & "</td></tr>")

response.Write("</table></td></tr></table>")

End IF

End Sub

'----------检查参数是否正确---------------

Private Sub Check()

if Ubound(Arr_Field)<>Ubound(Arr_FieldName) then

str_Error="Fields数组和FieldName数组维数必须相同"

end if

if obj_RecordSet=empty then

str_Error="数据源不能为空,请设置dataSource属性"

end if

if int_PageSize="" then

str_Error="数据源不能为空"

end if

ShowLastError

End Sub

End Class

%>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有