使用AutoPostBack在CheckBox上进行多次回发

时间:2011-06-24 07:06:34

标签: c# asp.net autopostback

在使用AutoPostBack的CheckBox上的onClick-Event之后,我遇到了双回帖的问题。当我单击其他服务器控件时,回发行为符合预期。

CheckBox定义:

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

CodeBehind定义:

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

我尝试将AutoWireUp属性设置为false,但它只在第一页加载时停止执行Page_Load事件。

有没有人有同样的问题或知道解决方案?

3 个答案:

答案 0 :(得分:0)

请使用全局aspx选项AutoEventWireUp = false。

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

答案 1 :(得分:0)

如果您已在代码中的某处单独注册CheckChange事件,则需要检查

chkCopyToRespDoc.CheckedChanged += new EventHandler(chkCopyToRespDoc_CheckedChanged);

也许在OnInit或page_Load中,您必须删除已经注册的

答案 2 :(得分:0)

我自己找到了解决方案。

我只需删除复选框的AutoPostBack属性,双回帖就消失了。

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

感谢所有建议。

Greatings