繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP基础 >> ASP常见问题及解答(5)

ASP常见问题及解答(5)

2006-04-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:1.'功能: 过虑HTML字符 '输入:字符串 '输出:经格式化后的字符串 function HTMLEncode(fString) if not isnull(fString) then fString = replace(fString, ">", ">") fString = replace(fString, "
关键字:常见问题 解答 ASP

1.'功能: 过虑HTML字符

'输入:字符串

'输出:经格式化后的字符串

function HTMLEncode(fString)

if not isnull(fString) then

fString = replace(fString, ">", ">")

fString = replace(fString, "<", "<")

fString = Replace(fString, CHR(32)&CHR(32), " ")

fString = Replace(fString, CHR(9), " ")

fString = Replace(fString, CHR(34), """)

fString = Replace(fString, CHR(39), "'")

fString = Replace(fString, CHR(13), "")

fString = Replace(fString, CHR(10) & CHR(10), "

")

fString = Replace(fString, CHR(10), "

")

HTMLEncode = fString

end if

end function

2.分页类

'参数:系统(如:product,article),条件(如果是数值,则默认为categoryID的值),排序,

'每页显示记录数,模式(more:显示更多字样,page:显示翻页导航),

'翻页导航模式(number:显示数字,page:显示上一页,下一页),记录显示模版名(显示记录的过程名)

class List

dim p_system'系统表,如tblProduct,tblArticle

dim p_where'条件

dim p_orderBy'排序

dim p_recordCount'每页显示记录数

dim p_horizontal'每行显示记录数

dim p_mode'列表模式,参数:more(更多模式,显示更多字样),page(列表模式,显示翻页导航)

dim p_moreURL'更多模式时的URL

dim p_paginationMode'翻页导航模式,参数:number(数字导航,显示如:1,2,3,4),page(翻页导航,显示如:上一页,下一页)

dim p_models'列表模版过程

dim p_table'列表的table标签

dim p_page'页码

dim p_member'是否显示会员产品

dim p_groupWhere

Private Sub Class_Initialize

p_system=""

p_where=""

p_orderBy=" order by categoryID,orderBy,postdate"

p_recordCount=15

p_horizontal=4

p_mode=""

p_moreURL=""

p_paginationMode="page"

p_models=""

p_table="

"

p_page=1

p_member=false

p_groupWhere="groupID=0"

End Sub

Property Let system(value)

p_system=value

end property

Property Let where(value)

if isInt(value) then

p_where=" where categoryID="&value

else

p_where=" where ("&value&")"

end if

end property

Property Let orderBy(value)

p_orderBy=" order by "&value

end property

Property Let recordCount(value)

p_recordCount=value

end property

Property Let horizontal(value)

p_horizontal=value

end property

Property Let mode(value)

p_mode=value

end property

Property Let moreURL(value)

p_moreURL=value

end property

Property Let paginationMode(value)

p_paginationMode=value

end property

Property Let models(value)

p_models=value

end property

Property Let table(value)

p_table=value

end property

Property Let page(value)

if getNumeric(value)<1 then

p_page=1

else

p_page=int(value)

end if

end property

Property Let member(value)

p_member=value

if p_member then

authorizationID=getValue("tblMember","authorizationID","memberID="&session("memberID"))

if authorizationID="" or authorizationID=0 then

authorizationID=getValue("tblGroup","authorizationID","groupID="&session("groupID"))

end if

virtual=getValue("tblAuthorization","virtual","authorizationID="&authorizationID)

authArr=split(virtual,",")

for i=0 to ubound(authArr)

if i=0 then

p_groupWhere="groupID="&getValue("tblGroup","groupID","authorizationID="&authArr(i))

else

p_groupWhere=p_groupWhere&" or groupID="&getValue("tblGroup","groupID","authorizationID="&authArr(i))

end if

next

else

p_groupWhere="groupID=0"

end if

end property

'列表过程

public sub List()

dim rs

dim where

if p_where="" then

where=" where "&p_groupWhere&" and publish=1"

else

where=p_where&" and ("&p_groupWhere&") and publish=1"

end if

strSql="select * from "&p_system&where&p_orderBy

'response.write strSql

'response.end

set rs=getRecord(strSql)

if rs.eof then

response.write convertEncode(lgeNoRecord,gb,language)

exit sub

end if

rs.pageSize=p_recordCount

if rs.pagecount

rs.AbsolutePage=p_page

dim ii

response.write p_table

for i=1 to p_recordCount

if rs.eof then

exit for

end if

response.write ""

for ih=0 to p_horizontal

if ii=p_recordCount then

exit for

end if

if rs.eof then

response.write " "

else

response.write ""

execute "call " & p_models

response.write ""

rs.movenext

end if

ii=ii+1

next

response.write ""

next

response.write "

"

if p_mode="more" then

response.write "

"&p_moreURL&""

end if

if p_mode="page" then

response.write "

"

call pagination(p_page,rs.recordCount,rs.pageCount,p_paginationMode)

response.write "

"

end if

end sub

end class

'-------------------------------列表过程结束-------------------------------------------------------------

3.如何在客户端无刷新调用服务端代码

1.

2.XMLhttp:

dim objXMLHTTP

set objXMLHTTP=CreateObject("MICROSOFT.XMLHTTP")

objXMLHTTP.open "GET","XMLhttp.ASP",false

'参数1:post,get;参数2:请求的URL, 参数3:同步或异步调用

objXMLHTTP.send ""

magbox objXMLHTTP.ResponseText '服务端输出到客户端的文本数据

------------

XMLhttp:参考

http://msdn.microsoft.com/library/default.ASP?url=/library/en-us/XMLsdk30/htm/xmobjXMLhttprequest.ASP

4.<%

'取得地址栏完整地址

Function GetUrl()

On Error Resume Next

Dim strTemp

If LCase(Request.ServerVariables("HTTPS")) = "off" Then

strTemp = "http://"

Else

strTemp = "https://"

End If

strTemp = strTemp & Request.ServerVariables("SERVER_NAME")

If Request.ServerVariables("SERVER_PORT") 80 Then strTemp = strTemp & ":" & Request.ServerVariables("SERVER_PORT")

strTemp = strTemp & Request.ServerVariables("URL")

strtemp=left(strtemp,instrRev(strtemp,"/"))

GetUrl = strTemp

End Function

Response.write GetUrl()

%>

5.分页类

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("对不起,没有记录!")

Else

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

IF CurrentPage PgCount Then

CurrentPage = PgCount

End If

End IF

obj_RecordSet.absolutepage = CurrentPage

Response.Write("

")

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

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

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

if CurrentPage>1 then

FirstLink = "首页"

PrevLink = "上一页"

else

FirstLink = "首页"

PrevLink = "上一页"

end if

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

if CurrentPage

NextLink = "下一页"

LastLink = "尾页"

else

NextLink = "下一页"

LastLink = "尾页"

end if

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

Response.Write("")

Response.Write("

")

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

Response.Write("")

Dim i

For i=0 to FieldCount -1

Response.Write("" & Arr_FieldName(i) & "")

Next

Response.Write("")

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

i=0

While (not obj_RecordSet.EOF) and i

Dim Cursor

Response.Write("")

For Cursor = 0 to FieldCount -1

Response.Write("" & obj_RecordSet(Arr_Field(Cursor)) & "")

Next

Response.Write("")

i=i+1

obj_RecordSet.MoveNext

Wend

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

Response.Write("" & PageInfomation & "")

response.Write("

")

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

%>

责任编辑:admin
相关文章