簡體   English   中英

從自定義對象向用戶控件添加事件處理程序

[英]Add Event Handler to User Control from custom object

我創建了一個用戶控件,其中將包含LinkBut​​tons表(和其他信息)。 我在另一個自定義對象中創建表行,並在這些表行的某些單元格中返回帶有鏈接按鈕的TableRowCollection。

在用於用戶控件的代碼中,我為這些LinkBut​​ton的按鈕單擊創建了一個事件處理程序。 我將用戶控件傳遞給方法調用以創建表行(使用“ this”),然后嘗試將事件處理程序添加到LinkBut​​ton的“ Click”中。 由於某種原因,事件處理程序不會在由該按鈕引起的回發中觸發。 關於如何使此事件觸發的任何想法?

這是我創建按鈕並添加事件處理程序的代碼:

LinkButton button = new LinkButton();
button.Text = movie.Title;
button.Click += new EventHandler(control.Link_Click);
button.CommandArgument = result.LocalID.ToString();
cell1.Controls.Add(button);

其中“控件”是作為參數傳入的用戶控件,而“ Link_Click”是事件處理程序。

提前致謝!

首先,如果事件處理程序已經在用戶控件內,則無需將對其的引用傳遞到其自己的方法中。 您可以簡單地訪問事件處理程序中的任何屬性或方法。

事件依賴於控件ID連接到正確的控件。 如果您不是在每次回發時都以完全相同的方式創建鏈接按鈕,並確保它們具有與以前相同的ID,那么您的事件處理程序將不會觸發,因為ASP.Net管道將無法執行在控制樹中找到它認為正確的按鈕。

此外,如果您在每次回發時都將用戶控件重新綁定到其數據源,則可能導致丟失某些控件的事件,原因與上文所述相同。

檢查以確保每次都正確地重新創建控件,並且沒有每次都重新綁定用戶控件。

暫無
暫無

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

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