ASP開發44條技巧集錦之一

來源:互聯網
上載者:User
技巧

下一節:ASP開發44條技巧集錦之二

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<br>"
HTML = HTML & "Mail content here ...</font></p>"
HTML = HTML & "</body>"
HTML = HTML & "</html>"
dim StrRecEmail,StrPosEmail,StrSubject,StrBody
StrRecEmail=request("email")
StrPosEmail="yufh@alleasy.com.cn"
StrSubject="資料下載通知函"
StrBody=HTML

7. input是底線

style="BORDER-RIGHT: #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. 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. 幾個Regex  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>

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。