◎网速测试 ◎IP查询 ◎Alexa排名
首 页 关于我们 网站建设 网站推广 网站优化 业务流程 案例展示 推荐文章
 
文章分类
网站优化SEO
网站安全管理
网络营销策略
建站指南
设计前沿
代码分享
Asp的各种功能函数参考

日期:2008-5-26

   asp能完成很多的功能,但是每个例子都有它的独特性,要使用统一的方法很难,为了大家不重复的提问 
每个功能,建议编写asp各种功能函数库,以便大家相互学习,统一编码,提到水平 
编写函数的要求 
1、函数名称 
2、函数的简单介绍 
3、函数的内容 
4、函数的调用例子 

例如: 
函数名称:通用打开access数据库的函数 
函数说明:通用打开asp数据库的函数 


<% 
function openAccessDB 
AccessDb=access.mdb 
 Set conn = Server.CreateObject("ADODB.Connection") 
 connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessDB) 
    conn.Open connstr 
End Function 
%> 


函数名称:通用关闭access数据库的函数 
函数说明:同上 

function CloseAccessDB 
 Conn.close 
 Set conn = Nothing 
End Function 

函数调用 


<% 
openaccessDB 
sql="select * from art" 
set rs=server.createobject("adodb.recordset") 
rs.open sql,conn,1,1 
................. 
CloseAccessDB 
%> 

下面的代码是一个购物车的类!  


<% 
Class CartKit ’开始类CartKit的定义 
Sub CreateCart() 
  If IsArray(Session("Cart")) = False Then 
    Dim aryCart(19,2) 
    Session("Cart") = aryCart 
  End If 
End Sub 

Function CheckCart() 
  If IsArray(Session("Cart")) Then 
    CheckCart = True 
  Else 
    CheckCart = False 
  End If 
End Function 

Function CheckItem(ID) 
  Dim aryCart 
  If CheckCart = True Then 
    aryCart = Session("Cart") 
 For i = LBound(aryCart) To UBound(aryCart) 
   If aryCart(i,0) = ID Then 
     CheckItem = True 
     Exit Function 
   ElseIf aryCart(i,0) <> ID Then 
     CheckItem = False 
   End If 
 Next 
  End If 
End Function 

Function RemoveItem(ID) 
  dim i,intPos,aryRemoveCart 
  aryCartRemove = Session("Cart") 
  For i = LBound(aryCart) To UBound(aryCart) 
    If aryCart(i,0) = ID Then 
   intPos = i 
   Exit For 
 End If 
  Next 

  For i = intPos To UBound(aryRemoveCart) - 1 
    If Not aryRemoveCart(i,0) = "" Then 
   aryRemoveCart(i,0) = aryRemoveCart(i+1,0) 
   aryRemoveCart(i,1) = aryRemoveCart(i+1,1) 
   aryRemoveCart(i,2) = aryRemoveCart(i+2,2) 
    End If 
  Next 
  Session("Cart") = aryRemoveCart 
End Function 

Function UpdateItem(ID,Num) 
  dim aryUpdateCart,i 
  aryUpdateCart = Session("Cart") 
  For i = LBound(aryUpdateCart) To UBound(aryUpdateCart) 
    If aryUpdateCart(i,0) = ID Then 
   aryUpdateCart(i,1) = Num 
   Session("Cart") = aryUpdateCart 
 End If 
  Next 
End Function 

Function AddItem(ID,Num) 
  Dim btnCartStatus,aryAddCart 
  btnCartStatus = CheckCart 
  If btnCartStatus = False Then 
    CreateCart 
    aryAddCart = Session("Cart") 
    aryAddCart (0,0) = ID 
    aryAddCart (0,1) = Num 
 Session ("Cart") = aryAddCart 
 Exit Function 
  ElseIf btnCartStatus = True Then 
 If CheckItem(ID) = True Then 
   UpdateItem ID,Num 
 ElseIf CheckItem(ID) = False Then 
   aryAddCart = Session("Cart") 
      For i = LBound(aryAddCart) To UBound(aryAddCart) 
     If aryAddCart(i,0) = "" Then 
    aryAddCart(i,0) = ID 
    aryAddCart(i,1) = Num 
    Session("Cart") = aryAddCart 
    Exit Function 
  End If 
   Next 
 End If 
  End If 

End Function 

End Class 
%> 

通用分页函数  

<% 
  ’调用方法如下 
  ’Create Recordset Object的代码这儿就不贴了 
      PageSize = 5 
      RecordCount=rs.recordcount 
      Call TurnPage(rs,"admin_product.asp?info=" & strID,recordcount) 
’############################################### 

  ’翻页函数 
  ’传入参数: objRS (记录集) 
  ’调用翻页过程的文件名,如需要参数,则跟上参数 
  ’Records ’总记录条数 
  ’输 出: 记录集翻页显示功能 

  Sub TurnPage(ByRef objRS,FileName,Records) 
      If objRS.Eof And objRS.Bof Then Exit Sub 
      Dim FormPage,strPageInfo 
      Dim TotalPage 
      Dim PageNo ’当前显示的是第几页 
      Dim postion 
  
      PageNo = Trim(Request.QueryString ("PageNo")) 
   ’许算总页数 
      TotalPage = INT(Records / PageSize * -1)*-1 
   If PageNo = "" Then PageNo = Trim(Request.Form("PageNo")) 
         ’如果没有选择第几页,则默认显示第一页; 

      If PageNo <> "" Then PageNo = CInt(PageNo) 

   If (PageNo = "" OR PageNo > TotalPage) Then PageNo = 1 


   objRS.AbsolutePage = PageNo 
      postion = InstrRev(FileName,"?") 
   FormPage = FileName 
   If postion > 0 Then 
       FileName = FileName & "&PageNo=" 
      Else 
       FileName = FileName & "?PageNo=" 
   End If 
%> 
<script language="javascript"> 
<!-- 
    function test(){  
    if (document.gopage.PageNo.value=="" ||     isNaN(document.gopage.PageNo.value)) { 
      alert("输入页数必须为数字"); 
      document.gopage.PageNo.focus(); 
      return false; 
     } 
     return true; 
 } 
// --> 
</script> 
<table border=0 width=’100%’ cellspacing="0" cellpadding="0" bgcolor="#98cefb"> 
  <tr>  
    <td align="center" valign="middle">  
<% 
  If TotalPage > 1 Then 
      If PageNo <= 1 Then 
       Response.Write ("首页 前页 <a href=""" & FileName & PageNo+1 & """>后页</a> <a href=""" & FileName & TotalPage & """>末页</a>") 
   Else 
    If PageNo >= TotalPage Then 
              Response.Write ("<a href=""" & FileName & "1"">首页</a>  <a href=""" & FileName  & PageNo -1 & """>前页</a>  " & "后页  末页") 
          Else 
              Response.Write ("<a href=""" & FileName & "1"">首页</a> <a href=""" & FileName  & PageNo -1 & """>前页</a> " & "<a href=""" & FileName  & PageNo+1 & """>后页</a> <a href=""" & FileName  & TotalPage & """>末页</a>") 
    End If 
   End If 
   Response.Write ("页次:<font color=""#FFFFFF"">" & PageNo & "</Font>/" & TotalPage & "页 共<font color=""#ffffff"">" & Records & "</font>篇文章 <font color=""#ffffff"">" & PageSize & "</font>篇/页") 
%> 
</td> 
<form onSubmit="return test();" name=gopage action=<%=formpage%> method="post"> 
<td align=right>第</td> 
<td> 
    <input type=text name=PageNo size=3 value="" class=input maxlength=4 title=请输入页号,然后回车>页  
<input type="submit" value="GO" name=button class=button_s> 
</td> 
</form> 
<% 
  End If 
%> 
    </td> 
</tr> 
</table> 
<%End Sub%> 

<% 
  ’这是我用ASP写的一个N进制转换的函数,不过还有局限性,感兴趣的可以测试一下,有问题请告诉我 
  ’【题目】任意进制间的互化。 
  ’        把n进制的M转化成k进制表示 
  ’        如m=ff n=16 k=2 
  ’        则有  (ff)16=(11111111)2 
  ’【参考程序】 
  Dim a(100)  


  ’将N进制转换成十进制 
  Function NTOD(m,n) 
      Dim cf,i,j 
   m = Trim(m) 
      For i=1 TO Len(m) 
       sTemp = Mid(m,Len(m)-i+1,1) 
          If (sTemp<="9") And (sTemp>="0") Then 
           a(i)=Asc(sTemp)-48 
          End If 
    If (Ucase(sTemp)<="F") And (Ucase(sTemp)>="A") Then 
        a(i) = Asc(Ucase(sTemp))-55 
          End If 
          s = s + a(i) * n^(i-1) 
      Next 
      NTOD = s 
  End Function 
   
 ’将十进制转成N进制 
  Function DTON(m,n) 
      If n = 10 Then 
       DTON = m 
    Exit Function 
   End If 

      Dim i,j 
   i = 0 
   Do 
       i = i + 1 
    a(i) = m Mod n 
    m = m \ n 
      Loop While(m<>0) 

   For j=i To 1 step -1 
       If a(j)>9 Then 
     DTON = DTON & Chr(a(j)+55) 
       Else 
        DTON = DTON & a(j) 
    End If 
   Next 
  End Function 

  Function NTOK(m,n,k) 
      s = NTOD(m,n) 
    NTOK = DTON(s,k) 
  End Function 

  ’调用示例 
  ’参数1:"abf"是需要转换的字符串 
  ’参数2:16是指需要转换字符串原来的进制 
  ’参数3:8是指将要转换成进制 
  Response.Write (NTOK("abf",16,8)) 
%> 


版权所有 桂林网站建设网 Copyright © GX360 All Rights Reserved.
桂ICP备06006609号