ASP.NET:資料庫繫結控制項DataBind方法

來源:互聯網
上載者:User
asp.net|控制項|資料|資料庫     DataBind方法是ASP.NET中一個很重要的概念,幾乎所有的控制項都需要它控制資料的操作,它的作用是在為控制項指定資料來源後,執行資料繫結操作。在上一章的DataSet對象執行個體中我們已經使用過,利用這個方法為DataGrid控制項綁定資料,即DataGrid.DataBind()。

    ASP.NET可以使用DataBind方法來綁定資料的控制項除了DataGrid,Repeater,DataList三個專用的資料繫結控制項以外,還有些資料集合性質的Web控制項,包括DropDownList,ListBox等,用來指定的資料來源一般為數組(ArrayList)、哈稀表(HashTable)、資料表(DataTable)、 資料檢視(DataView)和DataReader等。

    下面我們利用這個方法為ListBox控制項綁定資料來源。

    首先建立執行個體運行環境。開啟Visual Studio.NET 2003 ,建立一個Web項目,命名為DataCon,建立一個表單,命名為LBDataBind.aspx。在LBDataBind.aspx表單中添加一個ListBox控制項,如圖9.1所示。


圖9.1  為LBDataBind.aspx添加ListBox控制項

LBDataBind.aspx頁面的主要HTML代碼如下:
<form id="Form1" method="post" runat="server"> 
 <asp:ListBox id="ListBox1"  runat="server"></asp:ListBox>
</form>
在LBDataBind.aspx的邏輯代碼檔案(LBDataBind.aspx.vb)中的Page_Load事件程序代碼如下:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此處放置初始化頁的使用者代碼
        Dim i, j As Int16  '聲明兩個整型變數,用於迴圈
        Dim rd As Random = New Random
        '聲明一個隨機變數,並執行個體化
        Dim str As String
        '聲明一個字串變數,用於產生的隨機字元
        Dim arr As ArrayList = New ArrayList
        '聲明一個數組,用來存放字串
        For i = 1 To 20
            '執行外迴圈,每一次迴圈,產生一個項
            str = "第" & i & "項--"
            For j = 1 To 5
                '執行內迴圈,迴圈5次,
                '成生一個5個隨機大寫字母的字串
                str += Chr(rd.Next(65, 90))
            Next
            arr.Add(str)
            '添加到數組中
            str = ""
        Next
        ListBox1.DataSource = arr
        '為LisBox1指定資料來源
        ListBox1.DataBind()
        '使用DataBind方法,為控制項綁定資料
End Sub
儲存編譯,運行結果如圖9.2所示。


圖9.2  LBDataBind.aspx運行結果

    在上面這個執行個體中,我們使用了一個ListBox控制項,但是我們並沒有設定<asp:ListItem>屬性,為其添加項目。在LBDataBind.aspx的邏輯代碼裡,我們利用隨機數產生了一個含有20個項的數組(ArryList),我們為ListBox1指定這個數組為資料來源,並使用DataBind方法為其執行資料繫結,這樣就利用編程的方式實現了ListBox控制項的資料繫結操作。

    在上一節裡,我們學習了<%# %> 文法,這裡我們示範一下利用aspx檔案的Page.DataBind 方法實現對整個頁面的資料繫結。一旦aspx的整個頁面被綁定後,頁面內的資料都在監視之中。

    在DataCon Web項目裡建立一個表單,命名為PageDataBind.aspx。在PageDataBind.aspx裡添加一個DropDownList控制項,主要HTML代碼如下:
<body MS_POSITIONING="GridLayout">
 <form id="Form1" method="post" runat="server">
 <FONT face="宋體">
<span style="BACKGROUND-COLOR: #cccccc">
請選擇你最喜歡的體育運動:</span>
 <p>
 <asp:DropDownList
id="DropDownList1"
 runat="server"
 Width="104px"
Height="32px"
AutoPostBack="True">
    <asp:ListItem Value="跑步">跑步</asp:ListItem>
    <asp:ListItem Value="騎馬">騎馬</asp:ListItem>
    <asp:ListItem Value="射擊">射擊</asp:ListItem>
    <asp:ListItem Value="遊泳">遊泳</asp:ListItem>
    <asp:ListItem Value="踢足球">踢足球</asp:ListItem>
    <asp:ListItem Value="打籃球">打籃球</asp:ListItem>
    <asp:ListItem Value="打網球">打網球</asp:ListItem>
    <asp:ListItem Value="打乒乓球">打乒乓球</asp:ListItem>
    <asp:ListItem Value="打羽毛球">打羽毛球</asp:ListItem>
 </asp:DropDownList>
 <p>
 <span style="BACKGROUND-COLOR: #cccccc">你選擇的是:<br>
 <%#  DropDownList1.SelectedValue %>
 </span>
 </FONT>
</form>
</body>
    我們設定DropDownList1的AutoPostBack屬性為"True",即該控制項具有自動響應事件的能力,當列表框中的選定項發生變化時,會自動回傳伺服器上,並執行.NET架構委託的事件程序SelectedIndexChanged。我們為DropDownList1_SelectedIndexChanged事件程序編寫的代碼如下:
Private Sub DropDownList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
        '整個事件程序就一條語句,在執行該語句後,本aspx頁面就被資料繫結
         '當頁面的資料變動時候,就可以利用<%# %>方法顯示出來
Page.DataBind()
End Sub
儲存編譯,PageDataBind.aspx運行結果如圖9.3所示。


圖9.3  PageDataBind.aspx運行結果

    在上一章裡我們已經學習了用DataTable為DataGrid控制項提供DataBind資料來源,在DataView 執行個體裡,我們也利用DataView對象來為DataGrid控制項提供DataBind資料來源,這裡就不再贅述,讀者可以翻看前一章的執行個體代碼,仔細推敲其中的奧妙。

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。