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控件,因为它的代码逻辑的意图?
您需要将ListBox
放在UpdatePanel
中,并触发Button1_Click
事件,如Async;像这样:
<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>
应该是这样的:
Dim I As Integer = 0
For I = 0 To 10
ListBox1.Items.Add(I)
Next
如果你调试,然后你会看到每一次迭代一个项目被添加到ListBox1控件的Items,但效果只有在页面/表单加载时才可见