環路

2011-12-06 70 views
0

使用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

您需要將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> 
+0

謝謝你的迴應,但我試過你的建議,我仍然得到循環完成後的更新。 – SDM78

+0

這不能更新ListBox1在每個迭代中的Items集合,這隻允許您更新控制/處理'click'事件時的項目。謝謝你的時間。 –

+0

我看到..有沒有辦法在每次迭代中更新listbox1的項目集合? – SDM78

0

這應該相應工作:

Dim I As Integer = 0 
For I = 0 To 10 
    ListBox1.Items.Add(I) 
Next 

如果調試那麼你會在每次迭代的項目添加到ListBox 1控件的項目,但效果只有在可見見頁面/表單被加載。

+0

這對ASP不起作用,我仍然在循環結束後得到更新。 – SDM78

+0

如果頁面未重新加載,則無法在「ListBox1」中看到更新的數據。謝謝你的時間。 –

+0

但是這正是我所需要的,實時查看更新,而不是在頁面重新加載後 – SDM78