技巧
下一节:
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%>
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. 从VBS到JS,混用 <%
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>