如何在ASP中遍歷和操作Application對象的集合(2)_ASP教程
推薦:一些值得收藏的ASP代碼值得收藏的一些ASP代碼值得收藏的一些ASP代碼 1. oncontextmenu=window.event.returnvalue=false 將徹底屏蔽鼠標右鍵 table border oncontextmenu=return(false)tdno/table 可用于Table 2. body onselectstart=return false 取消選
2、對集合的操作
1) 增加值到Contents集合
增加值到Contents集合的方法,與在global.asa網頁的腳本代碼中使用過的方法相同。允許把一個新的Variant值增加到Application對象中,并已有建議的名字和值(可根據需要進行編輯),單擊按鈕,重新載入這個網頁,把值增加到Application.Contents集合中,并且在列表中顯示。
增加新的Contents條目的代碼
所有的按鈕和其他HTML控件放置在示例網頁中的一個窗體上。ACTION設置了當前網頁的路徑,提交該窗體時,重新裝入。METHOD屬性為“POST”,所以控件中的值出現在Request.Form集合中。在以前的章節中采用過這兩種技術:
<FORM ACTION=”<% = Request.ServerVariables(“SCRIPT_NAME”) %>” METHOD=”POST”>
該窗體上的按鈕都是普通的HTML INPUT控件,具有相同的標題(三個空格)但名字不同。例如,創建第一個按鈕(把值增加到Application對象中)的代碼是:
<INPUT TYPE=”SUBMIT” NAME=”cmdAdd” VALUE=” ”>
重新載入該網頁時,檢查Request.Form集合,判定單擊的是哪個SUBMIT按鈕,并進行相應的處理。如果是增加一個值到Application對象的按鈕(該按鈕在HTML的<INPUT>元素中被命名為cmdAdd),使用下面的程序段:
以下為引用的內容: If Len(Request.Form("cmdAdd")) Then strVarName = Request.Form("txtVarName") strVarValue = Request.Form("txtVarValue") Application.Lock Application("strVarName") = strVarValue Application.Unlock End If |
注意程序如何使用Application.Lock和Application.Unlock方法,確保這些值不會因兩個用戶并發地訪問而產生混亂。如果只是對一個特定的值進行設置,一般不可能發生這種情況。但一直使用Lock和Unlock方法是明智的。
2) Contents集合中刪除值
通過遍歷Contents集合(如前面我們所做的)執行ASP網頁時,創建該列表。但是,我們僅收集每項的名字并把它們放到<SELECT>列表元素內的<OPTION>元素中:
以下為引用的內容: … <SELECT NAME=”lstRemove” SIZE=”1”> <% For Each objItem in Application.Contents Response.Write “<OPTION>” & objItem & “</OPTION>” Next &> </SELECT> … |
該ASP代碼執行以后,在瀏覽器中看到的結果是:
以下為引用的內容: <SELECT NAME=”lstRemove” SIZE=”1”> <OPTION>ADOConnection</OPTION> <OPTION>Variant_Array</OPTION> <OPTION>Start_Time</OPTION> <OPTION>Visit_Count</OPTION> <OPTION>My_New_Value</OPTION> </SELECT> |
(1) 刪除單個值
當單擊按鈕刪除單個值時,該窗體再次提交給相同的網頁,但是這一次將設立一個為cmdRemoveThis的SUBMIT按鈕,然后調用Application.Contents集合的Remove方法:
以下為引用的內容: If Len(Request.Form("cmdRemoveThis")) Then strToRemove = Request.Form("lstRemove") Response.Write "strToRemove = " & strToRemove Application.Lock Application.Contents.Remove(strToRemove) Application.Unlock End If |
注意這是Contents集合的一個方法,而不是Application對象的。語法是Application.Contents.Remove,而不是Application.Remove。
從Contents集合中刪除Start_Time值的結果。
(2) 刪除所有的值
如果單擊三個SUBMIT類型按鈕中的最后一個,該網頁中的代碼將檢測到單擊的按鈕為cmdRemoveAll,將執行 Application.Contents集合的RemoveAll方法:
以下為引用的內容: If Len(Request.Form("cmdRemoveAll")) Then Application.Lock Application.Contents.RemoveAll Application.Unlock End If |
再次提醒,這是Contents集合的一個方法,而不是Application。語法是Application.Contents.RemoveAll,而不是Application.RemoveAll。
分享:ASP編程中11種數據庫的常用語法本文主要介紹了ASP連接11種數據庫的常用語法,詳細內容請參考下文: 1.Access數據庫的DSN-less連接方法: 以下為引用的內容: set adocon=Server.Createobject(adodb.connection) adoconn.OpenDriver={Microsoft Access Driver(*.mdb)};DBQ= _ Server.MapPath
- 相關鏈接:
- 教程說明:
ASP教程-如何在ASP中遍歷和操作Application對象的集合(2)。