【发布时间】:2014-07-05 18:03:08
【问题描述】:
请看下面的代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Response.Write("<table><tr><td>some text</td></tr></table>")
Response.Flush()
Threading.Thread.Sleep(3000)
Response.Write("<table><tr><td>some text</td></tr></table>")
Response.Flush()
Threading.Thread.Sleep(3000)
Response.Write("<table><tr><td>some text</td></tr></table>")
Response.Flush()
Threading.Thread.Sleep(3000)
Response.Write("<table><tr><td>some text</td></tr></table>")
Response.Flush()
Threading.Thread.Sleep(3000)
End Sub
代码按我的预期工作,即生成一个 HTML 表格并将其写入屏幕,然后在三秒后生成另一个表格并将其添加到屏幕等。
我有一个网页动态添加 x 个表格 (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.table%28v=vs.110%29.aspx) 到网页。但是, Response.Flush 似乎不起作用。我创建了下面的简单代码来解释这个问题:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
Dim Table1 As New Table
Dim r As New TableRow()
Dim c As New TableCell()
c.Text = "Test 1"
r.Cells.Add(c)
Table1.Rows.Add(r)
Response.Flush()
Threading.Thread.Sleep(3000)
Dim Table2 As New Table
Dim r2 As New TableRow()
Dim c2 As New TableCell()
c.Text = "Test 2"
r.Cells.Add(c)
Table1.Rows.Add(r)
End Sub
是否可以将 table1 刷新到客户端,然后等待几秒钟然后刷新 table2 还是必须将字符串写入 response.write?
【问题讨论】:
-
您没有将 Table1 添加到表单中。它需要是表单控件集合的一部分。尝试将占位符添加到表单,然后将表格添加到占位符。
-
@Craig Moore,它已添加到实时应用程序中的 PlaceHolder 控件中。
-
您的问题是关于理解 response.flush 还是解决您的问题?
-
@Dalorzo,两者都有。是否可以将 response.flush 与包含 Web 控件的页面一起使用?
-
我能找到的所有示例都是 HelloWorld 类型的示例,即将文本项刷新到屏幕上。