ASP开发44条技巧集锦之一

80酷酷网    80kuku.com

  技巧

下一节:

1. 几个常用函数

Round(pi, 2) 四舍五入

FormatNumber(k,4) ' 把 k 格式化为带四位小数点的数。
eg. 如果k =20000则显示为20,000.00;如果把formatnumber(k,0)则为20,000

Replace(expression,find,replacewith) '返回一字符串,其中指定的子串已被另一个子串替换

Left(String,Length) '返回指定数目的从字符串的左边算起的字符串。

Split(expression[, delimiter[, count[, start]]]) '返回基于 0 的一维数组,其中包含指定数目的子字符串。
eg. 常用这个 Split(String,[delimiter]) ' 用delimiter(用于标识子字符串界限的字符)来划分字符串

Instr(String1,String2) '返回某字符串在另一字符串中第一次出现的位置
eg1. if instr(addation,"密码配置表")<>0 then '说明存在
eg2. if instr(str,”AP”) >0 不好区分str = (AP,AP&AC),此时只要变为(’AP’,’AP&AC’),再用instr(str,”’AP’”)

2. 弹出窗口Pick值

function pickupSP(spdisid,pjnum,pdcode)
{
window.opener.<%=theForm%>.RefNum<%=Spid%>.value=spdisid;
window.opener.<%=theForm%>.LineS<%=Spid%>.value=pjnum;
window.opener.<%=theForm%>.kokey<%=Spid%>.value=pdcode;
window.close();
}

3. ASP控制图片显示的大小(等比例缩放)

<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script language="JavaScript">
<!--
var flag=false;
function DrawImage(ImgD){
var image=new Image();
image.src=ImgD.src;
if(image.width>0 && image.height>0){
flag=true;
if(image.width/image.height>= 164/112){
if(image.width>164){
ImgD.width=164;
ImgD.height=(image.height*164)/image.width;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"x"+image.height;
}
else{
if(image.height>112){
ImgD.height=112;
ImgD.width=(image.width*112)/image.height;
}else{
ImgD.width=image.width;
ImgD.height=image.height;
}
ImgD.alt=image.width+"x"+image.height;
}
}
}
//-->
</script>
</HEAD>
<BODY>
<a href="http://www.webjx.com/htmldata/2005-10-18/img.jpg" target="_blank"><img src="http://www.webjx.com/htmldata/2005-10-18/img.jpg" border="0" width="164" height="112" ></a>
</BODY>
</HTML>

4. ASP中对数据库表的操作(INSERT/UPDATE/DELETE),可使用事务处理,并支持多事务处理.

在ASP的数据库对象链接对象中,提供了一下属性:
BeginTrans 事务开始
CommitTrans 事务提交
RollbackTrans 事务回滚
<%
On Error Resume Next ’错误发生后继续处理
'Asp中使用事务
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open "course_dsn","course_user","course_password"
conn.begintrans '开始事务
sql="delete from user_info"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,3,3
if conn.errors.count>0 then '有错误发生
conn.rollbacktrans '回滚
set rs=nothing
conn.close
set conn=nothing
response.write "交易失败,回滚至修改前的状态!"
response.end
else
conn.committrans '提交事务
set rs=nothing
conn.close
set conn=nothing
response.write "交易成功!"
response.end
end if
%>
在ASP中,不提供事务的结束,BeginTrans只作用于自己的域,类似于变量声明一样,如果在函数体内BeginTrans,则事物只作用于本函数体,如果BeginTrans在函数体外,处于页面级,则事务的作用域从BeginTrans开始,到页面的结束均处于事务的管理状态下.

5. EasySales数据库操作

dim objCon,objRst,objsql
dim companyid
Set objCon = Server.CreateObject("ADODB.Connection")
objCon.Open SYSDNS,SYSNAME,SYSPASSWORD
Set objRst = Server.CreateObject("ADODB.RecordSet")
objsql="select * from PasswordConfig where companyid='"&session("CompanyID")&"'"
objRst.Open objsql,objCon,1,3

6. html格式邮件发送

HTML = "<html>"
HTML = HTML & "<head>"
HTML = HTML & "<title>Sending CDONTS Email Using HTML</title>"
HTML = HTML & "<link href="../cn/new.css" rel="stylesheet" type="text/css">"
HTML = HTML & "</head>"
HTML = HTML & "<body bgcolor=""FFFFFF"">"
HTML = HTML & "<p><font size=7>"
HTML = HTML & "This is a test mail in html
"
HTML = HTML & "Mail content here ...</font></p>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"
dim StrRecEmail,StrPosEmail,StrSubject,StrBody
StrRecEmail=request("email")
StrPosEmail="yufhalleasy.com.cn"
StrSubject="资料下载通知函"
StrBody=HTML

7. input是下划线

#f7f7f7 0px solid; BORDER-TOP: #f7f7f7 0px solid; FONT-SIZE: 9pt; BORDER-LEFT: #f7f7f7 0px solid; WIDTH: 110px; BORDER-BOTTOM: #c0c0c0 1px solid; HEIGHT: 16px; BACKGROUND-COLOR: #f7f7f7"
8. Session & Cookie
写入一个SESSION: 
   Session["username"])="aa";
   Session("username")="aa"   
   读取一个SESSINN:   
   string username= Session["username"]; 
   dim username=Session("username")  
   Cookie与此用法大致相同

9. 几个VB中的常数

下列常数由 Visual Basic for Applications 中的类型库定义,可用来在代码中的任何地方代替实际值:
常数 等于 描述
vbCrLf Chr(13) + Chr(10) 回车符与换行符结合
vbCr Chr(13) 回车符
vbLf Chr(10) 换行符
vbNewLine Chr(13) + Chr(10) 平台指定的新行字符;适用于当前平台
vbNullChar Chr(0) 值为 0 的字符
vbNullString 值为 0 的字符串 用来调用外部过程;与长度为零的字符串 ("") 不同
vbObjectError -2147221504 用户定义的错误号应当大于该值,例如:
Err.Raise Number = vbObjectError + 1000
vbTab Chr(9) Tab 字。
vbBack Chr(8) 退格字符

10. 按钮为不可用

<%if rsView.eof and rsView.bof then %> ‘ 这里有个大问题,下文再说
<input name="submit" type='submit' value='对选定用户解鎖' disabled>
<%else%>
<input name="submit" type='submit' value='对选定用户解鎖' >
</td>
<%end if%>

11. 报错并返回 if rs.bof and rs.eof then  ‘还是有问题
response.write"<SCRIPT language=JavaScript>alert('找不到!');"
response.write"javascript:history.go(-1)</SCRIPT>"
end if
-----------------------------------
这个是跳转。
<script language="javascript">
 alert('<%=intOperationInfo%>');
 window.navigate('ChangePwd.asp');
</Script> 12. VBSJS,混用    <%
   dim checkpwdconfig    
   checkpwdconfig=split(addation,"/")
   %>
   <script language="javascript">
   alert("<%=checkpwdconfig(0)%>")
   </script>  13. 弹出窗口 <script language=javascript>
function openaddnew()
{
subWindow=window.open("../Edit/PasswordConfigEdit.asp?method=new",'','scrollbars=yes,left=120,top=60,height=250,width=500,menubar=no,location=no,toolbar=no,resizable=yes','')
subWindow.opener = this;
}
</script>用一个连接调用:
<a href=""#"">请修改密码 </a>图片调用:
<img name=submit1 src="../button_new<%=session("languageid")%>.gif"  > 14. 分页 <!--#include file="conn.asp"-->
<%
if request("pageno")<>"" then
    pageno=int(request("pageno"))
else
 pageno=1
end ifsql="select * from news where [language]='中文' and bigclassname='新闻' order by id desc"
Set rs= Server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,3
rs.pagesize=20
if rs.eof then
pageno=0
else
rs.absolutepage=pageno
end if
%>
==========================================
共<%=rs.recordcount%>条,<%=pageno%>/<%=int(rs.pagecount)%>页,每页<%=rs.pagesize%>条
  <a href="manage.asp?pageno=1">首页</a>
  <%if pageno>1 then%>
  <a href="manage.asp?pageno=<%=int(pageno)-1%>">上一页</a>
  <%
  end if
  if int(pageno)<>int(rs.pagecount)then
%>
  <a href="manage.asp?pageno=<%=int(pageno+1)%>">下一页</a>
  <%end if%>
  <a href="manage.asp?pageno=<%=int(rs.pagecount)%>">尾页</a>
  <%rs.close%>
  <%call CloseConn()
%>15. 数据库更新  sql="select * from [user] where username='"&request("username")&"'"
  rs.Open sql,Conn,1,3
  rs("usermail")=Request("usermail")
  rs("userhome")=Request("userhome"))
  rs.update
  rs.close 16. 关闭独立窗口 <head>
<OBJECT id=closes type="application/x-oleobject" classid="clsid:adb880a6-d8ff- 11cf-9377-00aa003b7a11"><param name="Command" value="Close">
</object>
</head>
<body>
<input type="button" value="点击我关闭窗口" >
</body> 17. 极细表格 <table border="1" cellpadding="0" cellspacing="0" width="32" height="32" bordercolorlight="#000000" bordercolordark="#FFFFFF">
<tr>
<td> </td>
</tr>
</table>  18. 几个正则表达式 Require : /.+/,   
Email : /^\w+([-+.]\w+)*\w+([-.]\\w+)*\.\w+([-.]\w+)*$/,   
Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,   
Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/,   
Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`[\]\':+!]*([^<>\"\"])*$/,   
IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,   
Currency : /^\d+(\.\d+)?$/,
Number : /^\d+$/,   
Zip : /^[1-9]\d{5}$/,   
QQ : /^[1-9]\d{4,8}$/,   
Integer : /^[-\+]?\d+$/,   
Double : /^[-\+]?\d+(\.\d+)?$/,   
English : /^[A-Za-z]+$/,   
Chinese :  /^[\u0391-\uFFE5]+$/,   
UnSafe :/^(([A-Z]*|[a-z]*|\d*|[-_\~!#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/, 19. Left应用(控制字数) function title(str)
if len(trim(str))>=28 then
title=left(trim(str),27)&"..."
else
title=trim(str)
end if
end function  20. 判断浏览器 <SCRIPT LANGUAGE="javascript1.2">
<!--//
if (navigator.appName == 'Netscape')
var language = navigator.language;
else
var language = navigator.browserLanguage;
if (language.indexOf('en') > -1) document.location.href = 'en/index.asp';
else if (language.indexOf('zh') > -1) document.location.href = 'cn/index.asp';
else
document.location.href = 'cn/index.asp';
// End -->
</script>

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: