| 为了版美观,有时需要将一编较长的文章分页来显示,这时只好将文章分多次存入数据库,极不方便。 本人见过多种自动分页代码,感觉上不是很理想 偶的思路是统计文章的所有行数,按指定行数输出显示内容并生成分页导航 <% ''连接数据库: on error resume next dim conn,connstr,dbpath dbpath=server.mappath("web.mdb") ''数据库文件名 set conn=server.createobject("adodb.connection") connstr="driver={microsoft access driver (*.mdb)};dbq="&dbpath&";" conn.open connstr if err.number<>0 then response.write err.description err.clear response.end end if sub connclose() conn.close() set conn=nothing end sub ''读取数据: dim rs,sql,conntent,title,id id=1''trim(request("id")) ''上页传来的ID值,为了调试方便此ID值临时赋为1 set rs=server.createobject("adodb.recordset") sql="select * from news where id="&cint(id) rs.open sql,conn,1,1 if not (rs.eof and rs.bof) then content=rs("content") ''读取内容 title=rs("title") ''读取标题 end if if err.number<>0 then response.write err.description err.clear response.end end if rs.close set rs=nothing call connclose() ''分页处理部分: ''---------------------主代码开始-------------------------- dim page,pagecount,thispage,linenum,allline const pageline=10 ''每页显示10行 linenum=split(content,"<br>") ''本例为计算字符串<br>标记的个数 allline=ubound(linenum)+1 ''全文<br>(换行标记)总数 pagecount=int(allline\pageline)+1 ''计算总页数 page=request("page") if isempty(page) then thispage=1 else thispage=cint(page) end if response.write "<title>"&title&"</title><b>"&title&"</b><hr>" for i=0 to allline if i+1>thispage*pageline-pageline and i<thispage*pageline then response.write linenum(i) &"<br>" ''输出分页后的内容 end if next response.write chr(13)&"<hr>" response.write "<p align=''center''>总共"&allline&"行 "&pagecount&"页 每页"&pageline&"行 " for i=1 to pagecount if thispage=i then response.write i & " " else response.write "<a href=''?page="&i&"&id="&id&"''>"&i&"</a> " ''输出所有分页链接 end if next ''---------------------主代码结束-------------------------- %> 判断函数 <1>IsArray 函数 返回 Boolean 值指明某变量是否为数组。 语法 IsArray(varname) varname 参数可以是任意变量。 说明 如果变量是数组,IsArray 函数返回 True;否则,函数返回 False。当变量中包含有数组时,使用 IsArray 函数很有效。 <2>IsDate 函数 返回 Boolean 值指明某表达式是否可以转换为日期。 语法 IsDate(expression) expression 参数可以是任意可被识别为日期和时间的日期表达式或字符串表达式。 说明 如果表达式是日期或可合法地转化为有效日期,则 IsDate 函数返回 True;否则函数返回 False。在 Microsoft Windows 操作系统中,有效的日期范围公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日;合法的日期范围随操作系统不同而不同。 <3>IsEmpty 函数 返回 Boolean 值指明变量是否已初始化。 语法 IsEmpty(expression) expression 参数可以是任意表达式。然而,由于 IsEmpty 用于判断一个变量是否已初始化,故 expression 参数经常是一个变量名。 说明 如果变量未初始化或显式地设置为 Empty,则函数 IsEmpty 返回 True;否则函数返回 False。如果 expression 包含一个以上的变量,总返回 False。 <4>IsNull 函数 返回 Boolean 值,指明表达式是否不包含任何有效数据 (Null)。 语法 IsNull(expression) expression 参数可以是任意表达式。 说明 如果 expression 为 Null,则 IsNull 返回 True,即表达式不包含有效数据,否则 IsNull 返回 False。如果 expression 由多个变量组成,则表达式的任何组成变量中的 Null 都会使整个表达式返回 True。 Null 值指出变量不包含有效数据。Null 与 Empty 不同,后者指出变量未经初始化。Null 与零长度字符串 ("") 也不同,零长度字符串往往指的是空串。 重点 使用 IsNull 函数可以判断表达式是否包含 Null 值。在某些情况下想使表达式取值为 True,例如 IfVar=Null 和 IfVar<>Null,但它们通常总是为 False。这是因为任何包含 Null 的表达式本身就为 Null,所以表达式的结果为 False。 <5>IsNumeric 函数 返回 Boolean 值指明表达式的值是否为数字。 语法 IsNumeric(expression) expression 参数可以是任意表达式。 说明 如果整个 expression 被识别为数字,IsNumeric 函数返回 True;否则函数返回 False。 如果 expression 是日期表达式,IsNumeric 函数返回 False。 <6>IsObject 函数 返回 Boolean 值指明表达式是否引用了有效的 Automation 对象。 语法 IsObject(expression) expression 参数可以是任意表达式。 说明 如果 expression 是 Object 子类型变量或用户自定义的对象,则 IsObject 返回 True;否则函数返回 False。
|