• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

        ASP 3.0高級編程(415)

        ASP 3.0高級編程(415)

        更新時間:2022-05-16 文章作者:未知 信息來源:網絡 閱讀次數:

        異步執行是指在后臺檢索數據,可以在全部數據返回之前在Web頁面上使用已經得到的數據。雖然可能需要的是全部的數據,但異步工作至少可提前開始處理數據。也可讓用戶先看到某些內容,這使得Web站點看上去響應能力更強。
        與TDC類似,RDS數據控件可以通過設置OBJECT標記的參數或編寫代碼來設置其屬性。下面舉一個例子:
        <OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
                      ID="dsoAuthors" WIDTH="0" HEIGHT="0">
               <PARAM NAME="Connect" VALUE="DSN=pubs">
               <PARAM NAME="Server" VALUE="W2000">
               <PARAM NAME="SQL" VALUE="SELECT * FROM Authors">
        </OBJECT>
        等效于:
        <OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
                      ID="dsoAuthors" WIDTH="0" HEIGHT="0">
        </OBJECT>

        <SCRIPT LANGUAGE=JScript>

        function window.onload()
        {
               dsoAuthors.Connect = "DSN=pubs";
               dsoAuthors.Server = "W2000";
               dsoAuthors.SQL = "SELECT * FROM Authors";
               dsoAuthors.Refresh();
        }
        </SCRIPT>
        這里為Connect參數使用了一個DSN,因為這非常適合該頁面,但也可以是任何有效的ADO連接字符串。
        URL是ADO 2.5版提供的新特性,允許使用一個文件作為數據源。該文件可以有兩種格式:一種是用Recordset.Save方法保存的記錄集;另一種是一個ASP頁面,它創建一個記錄集,然后將其保存在一個流中。代碼如下:
        <OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
                      ID="dsoAuthors" WIDTH="0" HEIGHT="0">
               <PARAM NAME="URL" VALUE="DataPage.asp">
        </OBJECT>
        文件DataPage.asp包含以下VBScript代碼:
        <%
               Dim rsData
               Set rsData = Server.CreateObject("ADODB.Recordset")
               rsData.Open "SELECT * FROM Authors", strConn
               rsData.Save Response, adPersistXML
               rsData.Close
               Set rsData = Nothing
        %>
        這只是創建了一個記錄集,然后用Save方法將記錄集以XML格式保存到Response對象中。在ADO的早期版本中,只能將記錄集存為物理文件,而ADO 2.5版本能夠直接將其存為流。這個ASP頁面的結果就是XML格式的記錄集。下一章將研究關于流和XML數據的所有主題。
        使用URL屬性優于使用Connect和SQL屬性,其最大優點是:在用戶可以看到的網頁中不會出現連接的細節。考慮下面的對象定義:
        <OBJECT CLASSID="clsid: BD96C556-65A3-11D0-983A-00C04FC29E33"
                      ID="dsoAuthors" WIDTH="0" HIGHT="0">
               <PARAM NAME="Connect" VALUE="DSN=pubs">
               <PARAM NAME="Server" VALUE="W2000">
               <PARAM NAME="SQL" VALUE="SELECT * FROM Authors">
        </OBJECT>
        第一行顯示了連接的細節。此時能夠看到DSN為pubs,并且我們選擇了authors表的全部列。這無疑為電腦黑客進入Web站點提供了潛在的路徑,因為他們知道了服務器的名稱以及數據庫的一些細節。現在,考慮一下使用URL屬性的情況:
        <OBJECT CLASSID="clsid: BD96C556-65A3-11D0-983A-00C04FC29E33"
                      ID="dsoAuthors" WIDTH="0" HIGHT="0">
               <PARAM NAME="URL" VALUE="DataPage.asp">
        </OBJECT>
        現在,用戶所見到的是一個ASP網頁的URL地址,沒有任何有關服務器和數據庫的詳細信息。
        使用CONNECT/SQL屬性的方法,用戶可以清楚地見到連接的細節,而使用URL所見的卻是數據。從這一點上來說,消除了一個安全問題。
        在腳本中設置RDS數據控件的屬性時,必須使用Refesh方法,如下所示:
        <SCRIPT LANGUAGE=JScript>

        function window.onload()
        {
               dsoAuthors.URL="DataPage.asp";
               dosAuthors.Refresh();
        }
        </SCRIPT>
        這將強迫數據控件使用新的屬性值,并重新從數據提供者那里檢索數據。除了Refresh方法外,RDS數據控件還有許多其他方法,如表10-3所示:
        表10-3  RDS數據控件的方法及說明
        方 法
        說 明

        Cancel
        取消任何異步操作

        CancelUpdate
        取消對數據的任何修改

        CreateRecordset
        創建一個空的記錄集,這允許在本地創建新的數據集

        MoveFirst
        移到第一條記錄

        MoveLast
        移到最后一條記錄

        MoveNext
        移到下一條記錄

        MovePrevious
        移到上一條記錄

        Refresh
        更新來自數據存儲的數據

        Reset
        應用過濾或排序條件

        SubmitChanges
        將所有未解決的修改送回數據存儲

        在本章后面,會見到大多數方法的使用情況。
        3.  MSHTML數據控件
        微軟HTML(MSHTML)數據控件比較特別的地方在于:MSHTML是IE的一個組成部分,并能提供一個基于HTML文檔的數據源。雖然本質上MSHTML并不是為數據存儲使用的一種格式,但如果確實有許多包含某些數據格式的HTML網頁,MSHTML可能會變得較為有用。
        使用這個控件的代碼如下所示:
        <OBJECT ID="dsoAuthors" DATA="Authors.html" HIGHT="0" WIDTH="0">
        </OBJECT>
        為了能使用這個控件,必須為HTML標記指定ID屬性,因為正是ID屬性確定了字段的名稱。例如:
        <DIV ID="au_id">172-32-1176</DIV>
        <SPAN ID="au_lname">White</SPAN>
        <H1 ID="au_fname">Bob</H1>
        <PRE ID="au_id">213-46-8915</PRE>
        <H2 ID="au_lname">Green</H2>
        <H1 ID="au_fname">Cheryl</H1>
        讀者會注意到這看起來不太漂亮。是的,但正是這樣才可以說明HTML標記的名稱是無關緊要的,ID才是重要的。使用MSHTML DSO解析時,上面的HTML腳本將會產生兩行數據,每一行有三個字段。最后會得到類似于表10-4的數據:
        表10-4  HTML腳本產生的數據
        au_id
        au_lname
        au_fname

        172-32-1176
        White
        Bob

        213-46-8915
        Green
        Cheryl

        字段是由ID屬性確定的。如果一個標記的ID與現有的ID相同,那么這個標記的數據將成為新的一行,否則在相同的行中創建一個新的字段。
        與已經討論過的數據控件類似,MSHTML數據控件有一個Recordset屬性,這也是該控件的唯一的一個屬性。MSHTML數據控件沒有方法。
        4.  XML數據控件
        我們已經知道了一種將XML數據放入RDS控件的方法,即使用RDS數據控件和URL屬性從ASP文件中獲取XML數據。另外一種方法是使用XML Data Island(XML數據島),這需要使用XML標記。在這里簡要地提一下這個問題,因為在下一章會討論處理XML數據的細節。
        <XML>標記是一個與數據控件功能相似的瀏覽器HTML標記。在許多情況下與使用一個RDS數據控件類似,但該標記是為處理XML數據而特別設計的。使用的方式有二種。
        第一種是使用SRC屬性來指定數據的位置。
        <XML ID="dsoAuthors" SRC="Authors.xml"></XML>
        這表示使用文件Authors.xml作為數據源。
        另外,也可在標記中嵌入XML。
        <XML ID="dsoAuthors">
          <Authors>
               <Author>
                      <au_id>172-32-1176</au_id>
                      <au_lname>White</au_lname>
                      <au_fname>Johnson</au_fname>
                      <phone>408 496-7223</phone>
                      <contract>True</contract>
               </Author>
               <Author>
                      <au_id>213-46-8915</au_id>
                      <au_lname>Green</au_lname>
                      <au_fname>Marjorie</au_fname>
                      <phone>415 986-7020</phone>
                      <contract>True</contract>
               </Author>
          </Authors>
        </XML>
        我們將在下一章詳細討論XML數據控件。

        10.2.5 數據綁定
        迄今為止,已經可以用幾個不同的RDS數據控件將數據送到客戶端,但還沒有介紹當數據到達客戶端后,如何處理數據。實際上,這些數據控件負責的是數據的存儲及管理,并不真正地顯示數據。因此,問題在于如何將數據從數據控件中取出,并將其提供給HTML元素,使用戶能夠見到數據。
        使用客戶端數據最簡單的方法是將數據與HTML標記綁定。綁定就是在HTML元素和數據控件之間建立一種聯系。數據控件主要負責管理數據,并為HTML元素提供數據,而HTML元素則將數據顯示在屏幕上。
        為了將數據源與HTML元素綁定,需要設置兩個屬性:
        · DATASRC,確定包含數據的數據控件。在數據源名稱前總是要加一個“#”。
        · DATAFLD,確定綁定數據控件中的哪個字段。這些字段是數據控件管理的數據中的列名。因此對于一個數據庫,就是表中的列名。
        例如:
        <OBJECT CLASSID="clsid: BD96C556-65A3-11D0-983A-00C04FC29E33"
                      ID="dsoAuthors" WIDTH="0" HIGHT="0">
               <PARAM NAME="URL" VALUE="DataPage.asp">
        </OBJECT>

        <DIV DATASRC="#dsoAuthors" DATAFLD="au_fname"></DIV>
        <DIV DATASCR="#dosAuthors" DATAFLD="au_lname"></DIV>
        這里,dsoAuthors是一個標準的RDS數據控件。我們創建了兩個DIV元素,并通過設置屬性DATASRC指向先前定義的數據控件。然后設置屬性DATAFLD為字段名,在本例中為au_fname和au_lname。這就是數據綁定的全部過程。其結果如圖10-2所示:

        圖10-2  數據綁定結果
        需要記住一個重要事情是文本輸出(Johnson和White)根本沒有在HTML腳本中出現。實際上HTML只由以上顯示的內容組成。
        因此,數據綁定就是數據控件管理遠程數據源的數據,同時HTML元素使用該數據并將其顯示在屏幕上的能力。
        除此之外,HTML元素還有第三個屬性:DATAFORMATAS,可以是HTML或TEXT,表示如何格式化字段中的數據。缺省為TEXT,但如果需要HTML格式的數據,可以通過數據綁定將其格式化,例如下面的文本文件。
        Description,Image
        The main Wrox logo,<IMG SRC=http://www.okasp.com/techinfo/"logos/WroxLogo.gif">
        The Wrox Conferences logo,<IMG SRC=http://www.okasp.com/techinfo/"logos/WroxConferencesLogo.gif">
        The ASPToday logo,<IMG SRC=http://www.okasp.com/techinfo/"logos/ASPTodayLogo.gif">
        這是TDC的源文件,并且包含兩個字段,第一個是說明,第二個是顯示某些圖像的HTML文本。現在把它和一個HTML表格進行綁定。
        <TABLE ID="tblData" DATASRC="#dsoLogos">
          <THEAD>
           <TR>
            <TD>Description</TD>
            <TD>Image</TD>
           </TR>
          </THEAD>
          <TBODY>
           <TR>
            <TD><SPAN DATAFLD="Description"></SPAN></TD>
            <TD><SPAN DATAFLD="Image"></SPAN></TD>
           </TR>
          </TBODY>
        </TABLE>
        這里不必為數據綁定擔心,本例介紹的是表格數據綁定,下面將詳細討論這方面的內容。在這里使用是因為能較好地說明格式化數據。
        在瀏覽器中打開它,將會看到圖10-3所示的結果:

        圖10-3  綁定數據的格式化
        可以看到數據文件中的三行數據全部顯示在瀏覽器中,但是HTML作為文本顯示。為了見到HTML格式的數據,需要使用屬性DATAFORMATAS。
        <TD><SPAN DATAFLD="Description"></SPAN></TD>
        <TD><SPAN DATAFLD="Image" DATAFORMATAS="HTML"></SPAN></TD>
        此時在瀏覽器打開它,會得到一個效果較好的HTML頁面,如圖10-4所示:

        圖10-4  綁定數據HTML格式化
        將第二個字段格式化為HTML文檔,這一事實說明了字段任何HTML標記都可以解釋成為HTML文檔。因此,IMG標記變為真正的圖像,而源文件中并不包含任何IMG標記,只有綁定的數據。
        可以為任一數據源中的字段使用這種格式,任何HTML標記都會被解釋。這對于那些允許用戶輸入格式化文本的情形是比較有利的。
        1.  支持數據綁定的元素
        在上面的例子,使用了<SPAN>、<DIV>和<TABLE>標記來綁定數據,但并不是所有的HTML元素都支持數據綁定。表10-5詳細列舉了這些元素,表中列是:
        · HTML元素定義支持數據綁定的元素。
        · 綁定屬性定義綁定到數據的HTML元素的屬性。例如上面的DIV標記,綁定的數據就放在innerText屬性中。如果使用A標記,并將其綁定到一個字段,那么數據將會放在href屬性中。
        · 可否更新數據指出元素中的綁定數據是否能被更新。
        · 可否表格綁定指出該元素是否允許綁定子元素。稍后會討論這個內容。· 可否作為HTML顯示指出數據是否能格式化為HTML文檔。


        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統下載排行

        主站蜘蛛池模板: 国产一区二区三区免费观在线| 精品国产日韩亚洲一区在线| 18禁超污无遮挡无码免费网站 | 一个人看的www在线观看免费| 亚洲午夜未满十八勿入| 免费国产叼嘿视频大全网站| 国产成A人亚洲精V品无码性色| 免费看成人AA片无码视频吃奶| 亚洲国产精品无码久久一线| 久久香蕉国产线看免费| 337p日本欧洲亚洲大胆色噜噜| 99re免费视频| 欧洲 亚洲 国产图片综合| 日本一道在线日本一道高清不卡免费| 亚洲6080yy久久无码产自国产| 波多野结衣视频在线免费观看| 又大又硬又粗又黄的视频免费看| 亚洲熟妇少妇任你躁在线观看无码| 国产男女爽爽爽免费视频| 亚洲AV无码乱码在线观看裸奔 | 亚洲精品在线网站| 国产1024精品视频专区免费| 国产亚洲福利精品一区二区| 亚洲精品自在在线观看| 69xx免费观看视频| 国产精品亚洲专区一区| 国产成人亚洲综合色影视| 真人做A免费观看| 搜日本一区二区三区免费高清视频 | 亚洲一区二区三区免费观看| 女人18毛片特级一级免费视频| 黄色一级毛片免费| 亚洲一区二区影院| 国产成人涩涩涩视频在线观看免费 | 久9这里精品免费视频| 激情综合亚洲色婷婷五月APP| 亚洲精品无码专区2| 在免费jizzjizz在线播| 九九全国免费视频| 亚洲成人福利网站| 国产午夜亚洲精品午夜鲁丝片|