簡體   English   中英

帶按鈕的用戶控件 - 當 uc 動態添加到另一個頁面時

[英]Usercontrol with button - When uc is added dynamically to another page

帶按鈕的用戶控件 - 當 uc 動態添加到另一個頁面時,我松開了按鈕處理程序。

即:我有 1 個用戶控件和 1 個按鈕 - 該按鈕在后面的代碼中有一個事件處理程序。 當我以編程方式將 UserControl 添加到頁面時,按鈕處理程序不會觸發。 任何解決此問題的簡單方法的想法。

通常,當我將控件動態添加到頁面時,我不得不在每次回發時重新連接事件處理程序,但我希望因為該按鈕包含在 UserControl 中並且 uc 是動態添加的,所以我不會丟失它 - 不會似乎是這樣 - 有沒有更好的方法來做到這一點? 我的用戶控件最終將有很多按鈕,我不想每次都從動態添加用戶控件的頁面重新連接它們。

您將使用 Page.LoadControl 在頁面的 OnInit 事件處理程序中添加 ascx 控件(雖然我已經在 Load 事件處理程序中這樣做並且它有效,但文檔指定了 OnInit)

您的用戶控件(和頁面)應該為每次加載和回發連接它們的事件,例如 this.buttonID.Click += new System.EventHandler(this.buttonID_Click);

如果您這樣做,那么它應該都可以工作,如果沒有,請檢查您的 aspx/ascx 標記是否為錯誤字符,例如額外的 < 某處可能會破壞頁面,但它仍會在瀏覽器中呈現正常。

有時,當您向頁面動態添加控件時,按鈕事件處理程序會因為控件的 ID 不同步而變得混亂。 但我再次需要看看你是如何動態加載控件的。

當您動態添加任何控件時,您必須每次在 Page_Init 事件的宿主頁面中創建它。
如果這樣做,請確保單擊事件處理程序連接在 UserControl 的 OnInit 中。 我認為您不會每次都創建動態控件。

您是否將其添加到 ajax UpdatePanel 內部? 更新面板將捕獲回發。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM