2011-06-24 58 views
0

我有一個雙重帖子後,與AutoPostBack的複選框onClick事件後的問題。當我點擊其他服務器控件時,帖子後退的行爲如預期。複選框與AutoPostBack多個回發

複選框定義:

<asp:CheckBox ID="chkCopyToRespDoc" runat="server" Text="<%$ Translation:JacieWeb.Admin.Notifications.CopyToRespDoc %>" 
    OnCheckedChanged="chkCopyToRespDoc_CheckedChanged" AutoPostBack="true" CssClass="triggerOverlay" /> 

代碼隱藏定義:

protected void chkCopyToRespDoc_CheckedChanged(object sender, EventArgs e) 
{ 
    UpdateRecipients(RecipientsUpdateType.RespDoc); 
} 

我試圖設置AutoWireUp屬性設置爲false,但它只能採空執行第一個頁面加載Page_Load事件。

有沒有人有同樣的問題或知道解決方案?

+0

什麼是「UpdateRecipients」函數? –

+0

你的意思是當你檢查控制器一旦'chkCopyToRespDoc_CheckedChanged'被調用兩次?或者你要調用只有'經過== TRUE'這種方法(缺少如果條件) – V4Vendetta

+0

@Vano:該UpdateRecipients功能是自己的函數,處理更新到數據庫。 @ V4:確實如此。該事件被調用兩次。 –

回答

0

我自己找到了解決方案。

我只需要去掉複選框的AutoPostBack屬性和雙後回走了。

<asp:CheckBox ID="chkCopyToRespDoc" runat="server" Text="<%$ Translation:JacieWeb.Admin.Notifications.CopyToRespDoc %>" 
OnCheckedChanged="chkCopyToRespDoc_CheckedChanged" CssClass="triggerOverlay" /> 

感謝您的所有建議。

Greatings

0

請使用全局aspx選項AutoEventWireUp = false。

<%@ Page Language="c#" AutoEventWireup="false" Codebehind="file.aspx.cs" Inherits="Namespace"%> 
+0

不幸的是,在將AutoEventWireup更改爲false後,雙重回傳仍然存在。 –

+0

你可以在原始問題中發佈更多代碼:Page_Load方法,aspx標題嗎? – Andreas

0

您需要的情況下,檢查已註冊的CheckChange事件分開的地方在你的代碼一樣

chkCopyToRespDoc.CheckedChanged += new EventHandler(chkCopyToRespDoc_CheckedChanged); 

也許在OnInit或Page_Load中,你將不得不因爲其已經刪除的那些註冊