使用ASP.NET和VB.NET代码,我有以下代码:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim I As Integer = 0
For I = 0 To 10
ListBox1.Items.Add(I)
ListBox1.DataBind()
System.Threading.Thread.Sleep(300)
Next
End Sub
代码的预期输出是在每次迭代时更新listbox1控件,但实际发生的是它在整个循环结束后更新listbox1控件。
有没有办法按照代码逻辑更新listbox1控件?
答案 0 :(得分:0)
您需要将ListBox
置于UpdatePanel
内并触发Button1_Click
事件,如异步;像这样:
<asp:UpdatePanel runat="server" ID="pnlUpdate">
<ContentTemplate>
<asp:ListBox ID="ListBox1" runat="server"></asp:ListBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
答案 1 :(得分:0)
这应该有效:
Dim I As Integer = 0
For I = 0 To 10
ListBox1.Items.Add(I)
Next
如果您进行调试,那么每次迭代都会看到一个项目被添加到ListBox1控件的项目中,但只有在加载页面/表单时效果才可见。