2011-10-21 71 views
0

我已在用戶控件中添加了ScriptManagerUpdatePanel,但現在該頁面未回傳。這是頁面上ScriptManager的唯一實例。我使用的是VS 2010,我的項目是用4.0框架編譯的。在ScriptManager控件中,EnablePartialRendering設置爲true。我可以在某處丟失一個程序集引用/註冊嗎?AJAX在按鈕單擊事件中完全禁用回發

<asp:ScriptManager ID="ScriptManager1" runat="server" /> 

<asp:UpdatePanel ID="UpdatePanel1" runat="Server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:ImageButton ID="SignUp" runat="server" AlternateText="SignUp" 
      class="tips_button" ImageUrl="/~/myimage.ashx" 
      onclick="SignUp_Click" ToolTip="Find" /> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="SignUp" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 

回答

0

嘗試改變UpdateModeAlways,而不是Conditional。另外,對於這樣簡單的事情,你不需要指定任何觸發器。如果沒有指定觸發器,則控制器假定所有內容都應該是異步的。

我還會檢查以確保所需的字段驗證程序不會干擾回發。要測試這個,請將ImageButtonCausesValdiation屬性設置爲false。

+0

謝謝 - 我繼續前進並嘗試了兩條建議,但我仍然沒有收到有關點擊事件的回傳。 – sean

+0

你在頁面上是否有任何驗證器可能會干擾它?你可以通過設置'CausesValidation'爲false來測試。 –

+0

我確實需要頁面上的字段和regEx驗證器,但我沒有在任何地方看到「CausesValidation」屬性。那個集合在哪裏? – sean

1

對於UpdatePanelContentTemplate中的任何控件,您都不需要Trigger設置。默認情況下,所有控件將使用ajax回發,然後呈現ContentTemplate內的新內容。

你有一個Trigger設置已經在裏面的控制,所以可能是什麼導致問題,所以刪除它,因爲它是沒有必要的。如果您希望UpdatePanel通過ContentTemplate以外的控件進行「觸發」,則可以使用Trigger

其他一切看起來都不錯。確保您在代碼隱藏中設置了SignUp_Click,並通過在Page_Load中的某個代碼上設置一箇中斷點來測試該代碼,在發生回發時應該點擊該代碼。

問題:在你的ImageButton代碼ImageUrl="/~/myimage.ashx"看起來有點奇怪......在開始的額外斜線可能會導致一些問題。