標準のasp:Buttonコンポーネントを使用する場合、自動ポストバックをキャンセルするには(または条件付きでポストバックを作成するには)、次の手法を使用する必要があります。
Button.OnClientClickプロパティを介してクライアント側の操作を指定します。
ポストバックを実行する必要があるかどうかを示すブール値を返すロジックを実装します。
以下はポストバックをキャンセルしません(「OnClientClickHandler」メソッドが「false」を返すにもかかわらず):
<asp:Button ID="btn" runat="server" OnClientClick="OnClientClickHandler();" />
function OnClientClickHandler() {
return false;
}
次の実装は行います:
<asp:Button ID="btn" runat="server" OnClientClick="return OnClientClickHandler();" />
この動作は、JavaScriptコードスコープの詳細が原因であるようです。とにかく、私はこのシナリオの低レベルの実装の詳細に興味があります。
最初の実装(「OnClientClickHandler」メソッド呼び出しの前に「return」演算子がない場合)が機能しないのはなぜですか?