2011-01-07 42 views
0

我正在生成UserControl的實例並將它們放入UL。在我的UserControl有一個事件按鈕。我想問我如何保持我生成的用戶控件的狀態,以便它們在回發後保留在頁面上並捕獲它們的事件。在ASP.NET中保留多個用戶控件的狀態

For i As Integer = 0 To lstFoo.Count - 1  
    Dim liFoo As New HtmlGenericControl("li") 
    Dim ucMyFoo As ucFoo = LoadControl("userControls/ucFoo.ascx") 

    liFoo.Controls.Add(ucMyFoo) 
    ucMyFoo.DoSomething() 
    ulFoo.Controls.Add(liFoo) 
Next 
+2

您沒有爲ucMyFoo分配ID。如果回發後的任何內容(例如lstFoo中的#項)導致生成不同的控制集,這可能是問題。 – 2011-01-07 14:46:34

+0

嗯,ID做了竅門,發佈一個答案,我會標記它 – Drahcir 2011-01-07 15:33:58

回答

1

這聽起來像在帖子上,你沒有運行上面列出的邏輯。你只在GET請求上運行上面的代碼嗎?無論GET或POST如何,您都可以確保它在Page_Load中執行。

另一種方法是編寫一個UL Web用戶控件,該控件具有添加ucFoo.ascx控件內置的邏輯。然後將這個UL網頁用戶控件(ascx)包含到您的網頁中。

這會讓你的生活更輕鬆,因爲這個新的網頁用戶控件將永遠在頁面上,而且你不會動態添加控件。

相關問題