在循环期间刷新ListBox控件

时间:2011-12-06 07:17:44

标签: asp.net vb.net listbox

使用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控件?

2 个答案:

答案 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控件的项目中,但只有在加载页面/表单时效果才可见。