簡體   English   中英

ASP.NET控件事件處理程序未在回發時觸發?

[英]ASP.NET control event handler not firing on postback?

我有一個控件,該控件的ImageButton與OnClick事件相關聯...單擊此控件后,將執行回發,並且不會調用事件處理程序。 AutoEventWireup設置為true,並且我已經仔細檢查了拼寫等。...一年多來我們一直沒有碰過此控件,直到幾周前它一直工作良好。

我們已經對加載該控件的控件進行了更改...所以我想知道,我們可以進行哪些更改以阻止該事件處理程序被調用? 有大量的Java語言在進行,因此這也可能是罪魁禍首...

編輯:澄清一下...我們正在頁面的OnLoad事件中動態加載ImageButton的父控件。

AutoEventWireup無關緊要。 您的ImageButton是否動態加載,即沒有寫成標記? 如果在頁面生命周期的后期(例如在PreRender中)將其加載到頁面上,則不會觸發該事件。

如果出現JavaScript問題,則您的頁面甚至都不會回發。 那是真的嗎

您是否給ImageButton提供了ID?

我不同意BritishDeveloper所說的話。 我在動態加載控件時遇到了類似的問題,但是我無法使用Page.FindControl("controlName")引用該控件,有人指出我需要牢記頁面生命周期。 我發現我需要確保將控件加載到PageInit中,因為在執行異步回發之后,該控件仍然存在,但未加載回發中,因此無法找到它。 雖然這些都在csharp codebehind和ajax中,但是我猜想控件沒有被重新加載。

我可以再詳細一點...我只花了幾個小時來修復自己的問題,類似於此處描述的問題。 在創建一些搜索控件的過程中,我添加了一對ImageButton,並在它們上設置了PostbackUrl屬性。 幾天后,在測試新代碼時,我注意到該網絡表單上的其他按鈕均未正確發布。 他們會觸發回發,但是后面的代碼的行為似乎是每個回發都是初始頁面請求,並且沒有事件處理程序在觸發。

經過幾個小時的故障排除,我發現了這篇文章。 當我返回並從這兩個ImageButton中刪除PostbackUrl時,一切恢復正常。 我不知道為什么會導致此問題,但是這里提到的修復程序對我有用。 我想補充一點,我的ImageButtons不是動態添加的……它們在標記中,並且這個問題仍然出現。 在您的標記中搜索設置了PostbackUrl的任何控件...刪除該控件(如果需要,在其周圍的程序)...查看事件處理程序是否將正確觸發。

因此,事實證明,我們在控件A中的一個按鈕上設置了PostbackUrl屬性...這導致控件B的事件處理程序在按下控件B中的按鈕時不會觸發。

如果動態創建控件。 每當您使用新創建的控件觸發回發時,都需要重新創建它。 只需認為您的應用程序正在服務器上運行即可。 服務器如何保存有關動態創建的控件的信息? 不要使用Page.IsPostBack創建回發。 PostbackUrl是錯誤的解決方案。 需要Workarround。

暫無
暫無

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

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