當前位置:開發者網絡 >> 技術教程 >> ASP教程 >> ASP應用 >> 內容
精彩推薦
分類最新教程
分類熱點教程
    
從ASP遷移至ASP+ --將HTML表格轉換為ASP+數據列表
作者:未知
日期:2004-08-25
人氣:
投稿:xiaxia(轉貼)
來源:未知
字體:
收藏:加入瀏覽器收藏
以下正文:
原作者: 雨晨
我們從數據存儲中取回的數據將被用來顯示eVille提供的下兩節課程。基於頁面設計方面的考慮,標準的表格在這裡並不合適。數據需要以一種自定義的格式展示,用來顯示課程名,課程描述,以及報名的鏈接(該鏈接通過QueryString傳遞Session_ID)。下面是原始的ASP頁面利用ADO記錄集創建的一個循環,該循環為每條記錄創建一個新的行。

   < table width="100%" border="0">

   < tr>

   < td class="headerRow">Upcoming Events< /td>

   < /tr>

   < %Do While Not rsUpcoming.EOF%>

   < tr>

   < td>< p>< b>< %=rsUpcoming("Title")%>< /b>< br>

   < %=rsUpcoming("Description")%>< /p>

   < p>< a href="enroll.asp?SessionID=< %=rsUpcoming("Session_ID")%>">

   Enroll Now!< /a>< /p>< br>

   < /td>

   < /tr>

   < %

   rsUpcoming.MoveNext

   Loop

   %>

   < /table>

   在ASP+中,我們利用新的服務器控件,DataList。ASP+ DataList是用來創建自定義頁面佈局的新控件中的一種,這些佈局都是基於表格的。DataList通過你賦予的屬性來創建表格的行與列,同時使用Template來控制佈局。在下面的例子中,我們使用ItemTemplate來格式化每行的佈局。該templates控制每個顯示出來的單元的佈局(一個記錄對一個單元):

   < tr>

   < td class="headerRow">Upcoming Events< /td>

   < /tr>

   < /table>

   < asp:DataList id="dlUpcoming" width="100%" runat="server">

   < template name = "ItemTemplate">

   < p>< b>< %# Container.DataItem("Title") %>< /b>< br/>

   < %# Container.DataItem("Description") %>< /p>

   < p>< a href="enroll.asp?SessionID=< %# Container.DataItem("Session_ID") %>">

   Enroll Now!< /a>< /p>< br/>

   < /template>

   < /asp:DataList>

   缺省情況下,DataList創建一個單列的表格。通過改變它的一系列屬性可使其創建多個列:

   < asp:DataList id="dlUpcoming" width="100%"

   RepeatDirection="Horizontal"

   RepeatColumns="2"

   runat="server">

   其他的數據顯示控件包括DataGrid(標準表格佈局)和Repeater(完全自定義佈局)。

   如果我們現在來看頁面,表中的任何內容都不會顯示出來。這是因為我們雖然設計了佈局,卻沒提供數據。我們必須顯式地將數據(DataSet中的一個DataView)綁定到ASP+ DataList控件。通過設置DataSource屬性,調用將要顯示數據的控件的DataBind()方法,我們可以做到這一點。

   由於ASP+ web應用程序在運行前經過編譯,我們毋須遵循頁面上的線性處理流程。即使DataList的ID直到頁面代碼的中部才被確定(當我們實際將控件放在頁面上時),我們還是可以在頁面起始部分的Page_Load事件中指定控件。這樣一來,當頁面裝載時數據就已經被綁定到控件。

   < script language="vb" runat=server>

   Sub Page_Load(Source As Object, E As EventArgs)

   . . .

   cmdUpcoming.FillDataSet(dsUpcoming, "Upcoming")

   dlUpcoming.DataSource = dsUpcoming.Tables("Upcoming").DefaultView

   dlUpcoming.DataBind()

   End Sub

   < /script>

   使用諸如DataList這樣的ASP+服務器控件,使我們能有計劃性地訪問該控件。這樣我們便可以針對它的屬性以及方法來編寫代碼。在第一行中,我們將DataList的DataSource屬性設為DataSet中的DataView(一個單獨的數據表)。我們特別將它設為DataSet的表集中的Upcoming表的缺省視圖(view)。設置了DataSource後,我們就調用DataList控件的DataBind()方法,將SQL的查詢結果綁定到DataList控件。
相關文章: