[英]Add Event Handler to User Control from custom object
我創建了一個用戶控件,其中將包含LinkButtons表(和其他信息)。 我在另一個自定義對象中創建表行,並在這些表行的某些單元格中返回帶有鏈接按鈕的TableRowCollection。
在用於用戶控件的代碼中,我為這些LinkButton的按鈕單擊創建了一個事件處理程序。 我將用戶控件傳遞給方法調用以創建表行(使用“ this”),然后嘗試將事件處理程序添加到LinkButton的“ 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.