现在的位置: 首页 > 综合 > 正文

自己写的函数方便制作管理界面

2013年12月02日 ⁄ 综合 ⁄ 共 9174字 ⁄ 字号 评论关闭

有的时候做管理界面的添加删除修改重复劳动很麻烦

试写了一个函数包含了分页显示添加删除修改

dim arrHeaderName,arrFieldName,arrFieldData,arrTdWidth,strTblName,strKeyName,strHeaderCss,strBodyCss,strTableCss,strButtomCss,iPageSize,iTableBorder,iMpdifyMethod
arrHeaderName=array("编号","起始地址","结束地址","国家","地点")
arrFieldName=array("id","onip","offip","addj","addf")
arrFieldData=array("auto","num","num","char","char")
arrTdWidth=array("50","100","100","150","250")
strTblName="ip"
strKeyName="id"
strHeaderCss="HeaderCss"
strBodyCss="BodyCss"
strTableCss="TableCss"
strButtomCss="ButtomCss"
iPageSize=20
iTableBorder=1
iModifyMethod=7
'数据表格(标题名数组,字段名数组,字段类型数组[auto:自动编号,num:数字型,char:字符型(备注型),date,日期型,time:时间型],单元格宽度数组,表名,标题样式,正文样式,表格整体样式,底部样式,分页数,表格边框,修改需求[0:无1:添加2:删除3:修改4:添加+修改5:删除+修改6:添加+删除7:添加+删除+修改])
DataGrid arrHeaderName,arrFieldName,arrFieldData,arrTdWidth,strTblName,strKeyName,strHeaderCss,strBodyCss,strTableCss,strButtomCss,iPageSize,iTableBorder,iModifyMethod

这个函数就完成了具有分页显示添加删除修改一个表中的几个字段功能的页面

http://www.musecn.com/new

函数如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
'定义全局变量
dim objConn
'信息过滤(信息,类型)
function MyRequest(info,iType)
if iType=0 then
 MyRequest=trim(cstr(Replace(request(info),"'","''")))
else
 if isnumeric(request(info)) then
  MyRequest=clng(request(info))
 else
  Response.write "类型错误"
  Response.End
 end if
end if
end function
'页面头部(页面标题,样式地址)
sub PageStart(strPageTitle,strPageCss)
response.write "<html>"&vbcrlf
response.write "<head>"&vbcrlf
response.write "<meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312"">"&vbcrlf
response.write "<link href="""&strPageCss&""" rel=""stylesheet"" type=""text/css"">"&vbcrlf
response.write "<title>"&strPageTitle&"</title>"&vbcrlf
response.write "</head>"&vbcrlf
response.write "<body>"&vbcrlf
end sub
'连接数据库(数据库名)
sub DbConn(DbName)
set objConn=server.CreateObject("adodb.connection")
objConn.open "driver={microsoft access driver (*.mdb)};dbq="&server.MapPath(DbName)
end sub
sub PageLast()
response.write "</body>"&vbcrlf
response.write "</html>"&vbcrlf
end sub
'数据表格(标题名数组,字段名数组,字段类型数组[auto:自动编号,num:数字型,char:字符型(备注型),date,日期型,time:时间型],单元格宽度数组,表名,主键名,标题样式,正文样式,表格整体样式,底部样式,分页数,表格边框,修改需求[0:无1:添加2:删除3:修改4:添加+修改5:删除+修改6:添加+删除7:添加+删除+修改])
sub DataGrid(arrHeaderName,arrFieldName,arrFieldData,arrTdWidth,strTblName,strKeyName,strHeaderCss,strBodyCss,strTableCss,strButtomCss,iPageSize,iTableBorder,iModifyMethod)
dim objRs
dim strExec
dim iTmp,iTmp2
dim iPageCount
dim iPage
dim iRecordCount
dim iPageStart
dim iPageEnd
dim iLastTenPage
dim iNextTenPage
set objRs=server.CreateObject("adodb.recordset")
objRs.open "select count(*) from "&strTblName,objConn,1,1
iRecordCount=objRs(0)
objRs.close
If iRecordCount mod iPageSize=0 Then
 iPageCount= iRecordCount/iPageSize
Else
 iPageCount= iRecordCount/iPageSize + 1
End If
iPage=MyRequest("iPage",1)
if iPage<1 then iPage=1
if iPage>iPageCount then iPage=iPageCount
if MyRequest("Method",0)="Delete" then
 strExec="delete from "&strTblName&" where "&strKeyName&"="&MyRequest(strKeyName,1)
 objConn.execute strExec
 response.redirect "?iPage="&iPage
end if
if MyRequest("Method",0)="ModifyPost" then
 strExec="update "&strTblName&" set "
 for iTmp=0 to ubound(arrHeaderName)
  if arrFieldName(iTmp)<>strKeyName then
   if arrFieldData(iTmp)="num" then
    strExec=strExec&arrFieldName(iTmp)&"="&MyRequest(arrFieldName(iTmp),0)
   else
    strExec=strExec&arrFieldName(iTmp)&"='"&MyRequest(arrFieldName(iTmp),0)&"'"
   end if
   if iTmp<>ubound(arrFieldName) then strExec=strExec&","
  end if
 next
 strExec=strExec&" where "&strKeyName&"="&MyRequest(strKeyName,1)
 objConn.execute strExec
 response.redirect "?iPage="&iPage
end if
if MyRequest("Method",0)="AddNew" then
 strExec="insert into "&strTblName&"("
 for iTmp=0 to ubound(arrFieldName)
 if arrFieldName(iTmp)<>strKeyName then
  strExec=strExec&arrFieldName(iTmp)
  if iTmp<>ubound(arrFieldName) then strExec=strExec&","
 end if
 next
 strExec=strExec&")values("
 for iTmp=0 to ubound(arrFieldName)
  if arrFieldName(iTmp)<>strKeyName then
   if arrFieldData(iTmp)="num" then
    strExec=strExec&MyRequest(arrFieldName(iTmp),0)
   else
    strExec=strExec&"'"&MyRequest(arrFieldName(iTmp),0)&"'"
   end if
   if iTmp<>ubound(arrFieldName) then strExec=strExec&","
  end if
 next
 strExec=strExec&")"
 objConn.execute strExec
 response.redirect "?iPage="&iPage
end if

if iPage-5>0 then
 iPageStart=iPage-5
else
 iPageStart=1
end if
if 10+iPageStart<=iPageCount then
 iPageEnd=10+iPageStart
else
 iPageEnd=iPageCount
end if
if 10+iPage<=iPageCount then
 iNextTenPage=iPage+10
else
 iNextTenPage=iPageCount
end if
if iPage-10>0 then
 iLastTenPage=iPage-10
else
 iLastTenPage=1
end if

strExec="select top "&iPageSize*iPage&" "
strExec=strExec&strKeyName&","
for iTmp=0 to ubound(arrFieldName)
 strExec=strExec&arrFieldName(iTmp)
 if iTmp<>ubound(arrFieldName) then strExec=strExec&","
next
strExec=strExec&" from "&strTblName
objRs.open strExec,objConn,1,1
objRs.move iPageSize*(iPage-1)
response.write "<table border=""0"" cellpadding=""0"" cellspacing="""&iTableBorder&""" class="""&strTableCss&""">"&vbcrlf
response.write "<tr class="""&strHeaderCss&""">"&vbcrlf
for iTmp=0 to ubound(arrHeaderName)
 response.write "<td width="""&arrTdWidth(iTmp)&""">"&arrHeaderName(iTmp)&"</td>"&vbcrlf
next
if iModifyMethod=2 or iModifyMethod=5 or iModifyMethod=6 or iModifyMethod=7 then
 response.write "<td width=""50"">删除</td>"
end if
if iModifyMethod=3 or iModifyMethod=4 or iModifyMethod=5 or iModifyMethod=7 then
 response.write "<td width=""50"">修改</td>"
end if
response.write "</tr>"&vbcrlf
if iModifyMethod=1 or iModifyMethod=4 or iModifyMethod=6 or iModifyMethod=7 then
 response.write "<form name=""addnew"" method=""get""><tr class="""&strBodyCss&""">"&vbcrlf
 for iTmp=0 to ubound(arrHeaderName)
  if arrFieldName(iTmp)<>strKeyName then
   response.write "<td><input name="""&arrFieldName(iTmp)&""" type=""text"" size="""&arrTdWidth(iTmp)/10&"""></td>"&vbcrlf
  else
   response.write "<td>-</td>"&vbcrlf
  end if
 next
 response.write "<td colspan=""2""><input type=""hidden"" name=""iPage"" value="""&iPageCount&"""><input type=""hidden"" name=""Method"" value=""AddNew""><input type=""button"" value=""新增记录"" onclick=""addnew.submit()""></td>"
 response.write "</tr></form>"&vbcrlf
end if
for iTmp2=1 to iPageSize
 if objRs.Eof then Exit For
 response.write "<form name=""modify"&iTmp2&""" method=""get""><tr class="""&strBodyCss&""">"&vbcrlf
 for iTmp=0 to ubound(arrHeaderName)
  if arrFieldName(iTmp)<>strKeyName and MyRequest("Method",0)="Modify" and objRs(strKeyName)=MyRequest(strKeyName,1) then
   response.write "<td><input name="""&arrFieldName(iTmp)&""" type=""text"" size="""&arrTdWidth(iTmp)/10&""" value="""&objRs(arrFieldName(iTmp))&"""></td>"&vbcrlf
  else
   response.write "<td>"&objRs(arrFieldName(iTmp))&"</td>"&vbcrlf
  end if
 next
 if iModifyMethod=2 or iModifyMethod=5 or iModifyMethod=6 or iModifyMethod=7 then
  response.write "<td width=""50""><input type=""button"" onclick=""location.href='?iPage="&iPage&"&Method=Delete&"&strKeyName&"="&objRs(strKeyName)&"'"" value=""删除""></td>"
 end if
 if iModifyMethod=3 or iModifyMethod=3 or iModifyMethod=5 or iModifyMethod=7 then
  if MyRequest("Method",0)="Modify" and objRs(strKeyName)=MyRequest(strKeyName,1) then
   response.write "<td width=""50""><input type=""hidden"" name=""Method"" value=""ModifyPost""><input type=""hidden"" name="""&strKeyName&""" value="""&objRs(strKeyName)&"""><input type=""hidden"" name=""iPage"" value="""&iPage&"""><input type=""submit"" value=""确认""></td>"
  else
   response.write "<td width=""50""><input type=""button"" onclick=""location.href='?iPage="&iPage&"&Method=Modify&"&strKeyName&"="&objRs(strKeyName)&"'"" value=""修改""></td>"
  end if
 end if
 response.write "</tr></form>"&vbcrlf
 objRs.movenext
next
response.write "<tr class="""&strButtomCss&""">"&vbcrlf
response.write "<td colspan="""&ubound(arrHeaderName)+3&""">"&vbcrlf
response.write "分页 ( "&iPage&"/"&iPageCount&" )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
response.write "<a href=""?iPage=1"" title=首页><font face=webdings >9</font></a> "
response.write "<a href=""?iPage="&iLastTenPage&""" title=上十页><font face=webdings>7</font></a> "
for iTmp=iPageStart to iPageEnd
response.write " <a href=""?iPage="&iTmp&""">"&iTmp&"</a>"
next
response.write " <a  href=""?iPage="&iNextTenPage&""" title=下十页><font face=webdings>8</font></a>"
response.write " <a href=""?iPage="&iPageCount&""" title=末页><font face=webdings>:</font></a> "
response.write "&nbsp;&nbsp;"
response.write "</td>"&vbcrlf
response.write "</tr>"&vbcrlf
response.write "</table>"&vbcrlf
end sub
%>

调用函数的页面

<!--#include file="func.asp"-->
<%
starttime=timer()
'定义函数参数
dim strPageTitle,strPageCss
strPageTitle="标题"
strPageCss="css.css"
'页面头部(页面标题,样式地址)
PageStart strPageTitle,strPageCss
'定义函数参数
dim DbName
DbName="ip.mdb"
'连接数据库(数据库名)
DbConn DbName
'定义函数参数
dim arrHeaderName,arrFieldName,arrFieldData,arrTdWidth,strTblName,strKeyName,strHeaderCss,strBodyCss,strTableCss,strButtomCss,iPageSize,iTableBorder,iMpdifyMethod
arrHeaderName=array("编号","起始地址","结束地址","国家","地点")
arrFieldName=array("id","onip","offip","addj","addf")
arrFieldData=array("auto","num","num","char","char")
arrTdWidth=array("50","100","100","150","250")
strTblName="ip"
strKeyName="id"
strHeaderCss="HeaderCss"
strBodyCss="BodyCss"
strTableCss="TableCss"
strButtomCss="ButtomCss"
iPageSize=20
iTableBorder=1
iModifyMethod=7
'数据表格(标题名数组,字段名数组,字段类型数组[auto:自动编号,num:数字型,char:字符型(备注型),date,日期型,time:时间型],单元格宽度数组,表名,标题样式,正文样式,表格整体样式,底部样式,分页数,表格边框,修改需求[0:无1:添加2:删除3:修改4:添加+修改5:删除+修改6:添加+删除7:添加+删除+修改])
DataGrid arrHeaderName,arrFieldName,arrFieldData,arrTdWidth,strTblName,strKeyName,strHeaderCss,strBodyCss,strTableCss,strButtomCss,iPageSize,iTableBorder,iModifyMethod
'页面底部()
PageLast
%>
页面执行时间<%=(timer()-starttime)*1000%>毫秒

 

抱歉!评论已关闭.