ASP.NET:数据库邦定控件DataBind方法

80酷酷网    80kuku.com

  asp.net|控件|数据|数据库  在上一节中我们介绍了<%#  %> 语法,这种情况是Web 窗体有了明确的数据源,即Page.DataBind。这一小节我们来了解DataBind方法。

    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 #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 #cccccc">你选择的是:

 <%#  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数据源,这里就不再赘述,读者可以翻看前一章的实例代码,仔细推敲其中的奥妙。

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: