0

AutoPostBack を使用した CheckBox で onClick-Event を実行した後、ポスト バックが 2 回発生するという問題があります。他のサーバー コントロールをクリックすると、ポスト バックが期待どおりに動作します。

チェックボックスの定義:

<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 に答える