2009-05-21 59 views
0

我想利用「複雜」usercontrols與多個控制元素內。這是我將在列表中重複使用的相同控件,並且我已經有一個PlaceHolder控件。使用按鈕將用戶控件列表添加到PlaceHolder - no event?

我可以添加控件LoadControl(路徑到.ascx) - 沒問題。

我可以通過我的自定義屬性獲取/設置訪問嵌入的標籤,所以我可以完美地初始化每個控件。

但是當添加LinkBut​​tons時,我遇到麻煩/問題。

當我點擊按鈕,我確實得到了呈現控件的頁面的「提交」但控件自己的按鈕事件似乎並沒有觸發(或至少在父頁面上的PageLoad似乎首先被觸發?) - 我無法弄清楚我的事件發生在哪裏或在哪裏查找名稱/ ID或參數按鈕。

這是怎麼回事?

我已經制作了一個「假按鈕」,現在通過在URL中使用帶有ID的「hardcoded A HREF」更多地使用標籤,但是我想知道我需要捕捉什麼事件以及在哪裏或如何初始化按鈕,因爲我希望能夠使用這些用戶控件的「默認ASP.NET」控件(希望沒有太多的拼湊編碼)...

+0

請發佈生成LinkBut​​ton並綁定其事件的代碼隱藏。 – ichiban 2009-05-21 01:50:45

+0

感謝您的時間,我試圖在示例網站中重現問題,現在它按預期工作?!! ??! 我相信它與我在同一頁面上運行的相當複雜的AJAX功能有關。因爲沒有這些代碼完美地工作。 我該如何繼續?我要刪除這個問題還是關閉它或什麼? – BerggreenDK 2009-05-21 02:22:26

回答

1

事件「失去」的唯一原因是因爲你的控件不會以這樣的方式重新創建,ASP.Net可以在回發後將事件與控件相關聯。它通過使用ID屬性來完成。過程中的初始化階段創建回發

2後

1)你分配你的了LinkBut​​ton不同的ID的)你:

換句話說,你正在做的三件事情錯了'使用代碼動態創建鏈接按鈕,但是在頁面生命週期的初始階段之後進行,以便您的控件不參與ViewState。

3)您在每次回發中重新綁定包含鏈接按鈕的父控件的數據源。使用if (!IsPostBack)來防止每次重新綁定它。

沒有看到你的代碼,我不能給任何更具體的比那不幸。