OnInitとOnLoadにコードを追加すると、Request.IsPostbackをチェックして特定のコントロールが原因でコードが実行されるのをスキップできます(ポストバック)。例えば:私はこれをテストしていないので、あなたのチェックボックスが先頭に追加親コントロールのID値であることをそのクライアントIDとユニークIDにつながる他のコントロールにネストされている場合
<asp:CheckBox runat="server" ID="MyCheckbox" AutoPostBack="true" />
if(this.Request.IsPostback && this.Request.Form["__EVENTTARGET"] == this.MyCheckbox.ID)
{
return;
}
、その後、上記のこれらの2つの特性を試験します。また、その条件を逆にして、明らかに、そのIFブロック内の完全な本体コードをラップすることができます(そうしたい場合、または1つのメソッドで複数のreturn文を嫌う場合)。
私はよく分かっているといいですが、これはいくつかの処理を節約します。ただし、負の副作用がある可能性があります(たとえば、コントロールツリーにコントロールを動的に追加するコードがサーバーのinit/loadメソッド内にある場合、この場合でも常に実行するようにします。これらのdynコントロールのviewstateは無効になります)。
イベントサーバー側を処理したくないし、Javascriptでも処理したくないのですか?うーん、私はそれ以外の選択肢があるのか分からない。あなたの質問を誤解しない限り。 –
私はイベントサーバー側を処理したいです。私はちょうど完全なポストバックをしたくないです – Soader03