1

我的 .aspx 文件中有以下代码

<asp:Table ID="tabStudent" runat="server"></asp:Table>

我声明了我在下面使用的所有变量。load我在页面事件中编写了以下代码片段。但它只显示在我的数据库中有最后一行的一行。但是当我在这个while循环中使用消息框来print获取这些值时,我得到了所有的行。

Reader = Command.ExecuteReader()
While Reader.Read()
    lblRollNo.Text = Reader.Item(0)
    lblName.Text = Reader.Item(1)
    lblDob.Text = Reader.Item(2)
    tcRollNo.Controls.Add(lblRollNo)
    tcName.Controls.Add(lblName)
    tcDob.Controls.Add(lblDob)
    TableRow.Cells.Add(tcRollNo)
    TableRow.Cells.Add(tcName)
    TableRow.Cells.Add(tcDob)
    tabStudent.Rows.Add(TableRow)
End While

这段代码有什么问题?

4

1 回答 1

1

您不是在循环中创建新控件,而是始终重复使用相同的控件。

While Reader.Read()
    TableRow = New TableRow()
    lblRollNo = New Label()
    tcRollNo = New TableCell()
    ' and so on ...
    lblRollNo.Text = Reader.Item(0)
    lblName.Text = Reader.Item(1)
    lblDob.Text = Reader.Item(2)
    tcRollNo.Controls.Add(lblRollNo)
    tcName.Controls.Add(lblName)
    tcDob.Controls.Add(lblDob)
    TableRow.Cells.Add(tcRollNo)
    TableRow.Cells.Add(tcName)
    TableRow.Cells.Add(tcDob)
    tabStudent.Rows.Add(TableRow)
End While
于 2013-01-10T12:44:32.687 回答