0

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

复选框定义:

<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 事件。

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

4

3 回答 3

0

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

<%@ Page Language="c#" AutoEventWireup="false" Codebehind="file.aspx.cs" Inherits="Namespace"%>
于 2011-06-24T07:17:07.703 回答
0

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

chkCopyToRespDoc.CheckedChanged += new EventHandler(chkCopyToRespDoc_CheckedChanged);

也许在 OnInit 或 page_Load 中,您将不得不删除它们,因为它已经注册

于 2011-06-24T07:27:58.810 回答
0

我自己找到了解决方案。

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

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

感谢所有建议。

伟大的

于 2011-06-29T13:40:50.473 回答