📄 kj08-01-03.txt
字号:
8.1.3 绑定到内存数据表中的字段
在程序Prac07-02.aspx中,姓名列表框中的内容来自数据表中的“姓名”列,在那个程序中,是通过“手工”读取“姓名”列的内容,将该列数据加入下拉列表的。现在对程序Prac07-02.aspx进行改写,将姓名列表框绑定到数据表中的“姓名”列。
改写后的程序运行结果如图8-1-4所示,请仔细阅读源码。
图8-1-4 绑定到内存数据表中的字段
Prac08-04.aspx
#01: <!-- #include File="Prac07-07.inc" -->
#02: <Script Languate="VB" Runat="Server">
#03: Public myTable As DataTable
#04: Sub Page_Load(sender As Object, e As Eventargs)
#05: Dim DS As New DataSet()
#06: DS=CreateDataSet("Select * From 成绩表","Ssyyrr.mdb","成绩表")
#07: myTable = DS.Tables("成绩表")
#08: If Not IsPostBack Then
#09: rowNumber.DataSource=DS
#10: rowNumber.DataMember="成绩表"
#11: rowNumber.DataTextField="姓名"
#12: rowNumber.DataBind()
#13: Dim I As Integer
#14: For I = 1 To myTable.Columns.Count - 1
#15: columnNumber.Items.Add(I-1)
#16: columnNumber.Items(I-1).Text = myTable.Columns(I).ColumnName
#17: columnNumber.Items(I-1).Value=myTable.Columns(I).ColumnName
#18: Next
#19: End If
#20: End Sub
#21: Sub Button_Click(sender As Object, e As Eventargs)
#22: Message.Text = "『" & rowNumber.SelectedItem.Text & "』的『" &
columnNumber.SelectedItem.Value & "』成绩为『 " &
myTable.Rows(rowNumber.SelectedIndex).Item
(columnNumber.SelectedItem.Value) & " 』分。"
#23: Message1.DataBind()
#24: End Sub
#25: </Script>
#26: <Html>
#27: <Body Style="Font-Size=9pt">
#28: <Form Runat="Server">
#29: 请选择姓名及要查询的科目:<Hr Size="1" Color="Green">
#30: 姓名:<Asp:DropDownList Runat="Server" Id="rowNumber" />
#31: 科目:<Asp:DropDownList Runat="Server" Id="columnNumber" />
#32: <Asp:LinkButton Runat="Server" Text="查询" OnClick="Button_Click"
/><Br><Hr Size="1" Color="Green">
#33: 查询结果:<Asp:Label Runat="Server" Id="Message" /><Hr Size="1"
Color="Green">
#34: 查询结果:<Asp:Label Runat="Server" Id="Message1" Text=
"<%# myTable.Rows(rowNumber.SelectedIndex).Item
(columnNumber.SelectedItem.Value) %>" /><Hr Size="1" Color="Green">
#35: </Form>
#36: </Body>
#37: </Html>
? #05~#06:将数据库中的数据表传入DataSet。
? #07:为DataTable变量赋值。
? #09:指定将要与控件绑定的DataSet(内存数据库)。
? #10:指定将使用的内存数据表。就本例而言,因为内存数据库中只有一个数据表,所以实际上该属性是不必设置的。
? #11:指定将列表框的Text属性绑定到哪一列。类似地,可以通过DataValueField属性指定将列表框的Value属性绑定到哪一列。
? #12:调用DataBind()方法,激活已经设置完成的绑定。
? #34:利用表达式,将查询结果与标签控件的Text属性绑定。事实上,因为在#34中已经安排了显示查询结果的代码,故本行代码是多余的。保留本行代码的原因是希望读者能够意识到,在ASP.NET中,甚至可以将内存数据表中的任一数据项绑定到控件属性上!
在本例程序中,定位目的记录时,用到了列表框控件的SelectedIndex属性,该属性给出的是列表框中当前所选条目的下标。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -