【发布时间】:2016-04-22 14:47:59
【问题描述】:
在我正在编写的 Web 应用程序中,我通过按下按钮来填充 HTML 表格;填充表格后,用户可以单击另一个按钮将表格导出为 CSV 文件。
问题是,虽然表格在第一次按下按钮时正确填充,但当应用程序在第二次按下按钮时查询它时,它似乎是空的。
一些代码来解释这个问题: ASPX 页面中的 HTML
<asp:Button ID="BTNPopulate" runat="server" Text="Populate" />
<table id="Table1" style="border-width: 1px; border-color: Black; padding: 5px" cellspacing="0" runat="server" />
<asp:Button ID="BTNExport" runat="server" Text="Export" />
现在是第一个按钮
Protected Sub BTNTest_Click(sender As Object, e As EventArgs) Handles BTNTest.Click
Dim row As HtmlTableRow
Dim cell As HtmlTableCell
row = New HtmlTableRow()
row.BgColor = "Gray"
cell = New HtmlTableCell()
cell.Controls.Add(New LiteralControl("Test cell"))
row.Cells.Add(cell)
Table1.Rows.Add(row)
end sub
并且表格已正确填充。 我无法从中获取任何信息,事实上,如果我在第二个按钮单击代码隐藏中调用 .Rows.Count 方法
Protected Sub BTNExport_Click(sender As Object, e As EventArgs) Handles BTNExport.Click
Response.ContentType = "text/csv"
Response.AddHeader("Content-Disposition", "attachment; filename='PFExport.csv'")
CSVBuilder.Append(Table1.Rows.Count)
Response.Write(CSVBuilder.ToString)
Response.Flush()
Response.End()
End Sub
文件中的结果始终为 0。 另一方面,如果我在代码的填充部分末尾调用相同的 .Rows.Count 属性,它会正确返回结果。 我尝试使用 ASPTable 而不是 HTMLTable,但问题是一样的。
我想我在这里遗漏了一些基本的东西,不确定是什么。
【问题讨论】:
标签: asp.net vb.net html-table