<asp:Button>
をクリックした後、ポストバックを無効にします。 onclick="return false"
を割り当てることでそれを試みましたが、ボタンでは機能しません。
どうすれば修正できますか?
関連するコントロール/要素を含むUpdatePanelを使用して、これを修正できました。
onClientClick="return false"
これでうまくいくはずです! Onclick
はASP.net関数を参照し、onClientClick
はHTMLのコントロール上でOnClick
としてレンダリングします。
onclick
は、サーバー側のイベントを結び付けるために使用されます。 <asp:button OnClientClick="return false;" />
などのOnClientClick
ハンドラーを使用する必要があります
これらの答えがどれも役に立たないように見えました。私は解決策を見つけました。 ASP.NETボタンを使用する代わりに<asp:Button>
、HTMLボタンを使用する必要があります。完全に機能し、ASP.NETボタンとまったく同じように見えます。サーバー側で送信するHTMLボタンを取得するには、属性onserverclick
を使用します。
<input id="btnState" class="AddButtons" runat="server" type="button" value="Add State" onclick="swap('one', 'two');" />
私のコードでは、サーバー側で何かをするためにJSを使用していました。 <asp:Button>
はポストバックの実行を停止しませんでしたが、私が言ったように、HTMLボタンは私の問題を修正しました。これがあなたを助けたならば、答えとしてマークするか、投票してください。
これを使って:-
someID.Attributes.Add("onClick", "return false;");
それは私のためにこのように働いた:
<body>
:
function myfunction() {
return false;
}
および<head>
:
<asp:ImageButton ID="ImageButton1" runat="server" Height="52px" Width="58px" OnClientClick="myfunction(); return false;"/>
次のように、ASPボタンをUpdatepanel内に配置します
<asp:UpdatePanel ID="updPnl" runat="server" UpdateMode="Conditional" RenderMode="Block">
<ContentTemplate>
<asp:Button ID="btnID" runat="server" OnClick="btn_Click" />
</ContentTemplate>
</asp:UpdatePanel>
これがお役に立てば幸いです
あなたはポストバック後にそれをしたいので、ダブルクリックポストバックを防ぎたいと思いますか?この場合、クライアント側で最初にクリックした後に設定する何らかの状態維持変数を用意するのが最善です。簡単な例として
_var clicked = false;
function AllowOneClick(){
if(!clicked){
clicked = true;
return true;
}
return false;
}
_
次に、OnClientClickを設定してボタンにこのメソッドの結果を返すので、OnclientClick="return AllowOneClick()"
これはもちろん1つのボタンに対してのみ機能しますが、一般的な考え方が得られるはずです。
useSubmitBehavior = "false"を使用すると、onclickのポストバックを無効にできます。
私の場合、上記の解決策はどれも役に立たなかった。
私が望んでいたのは、最初にクライアント側で関数を呼び出してから、サーバーへのポストバックを停止することでした。私の解決策は、クライアント側の関数を呼び出す前に、単にreturn
キーワードを追加することでした。
<asp:Button Runat=Server OnClientClick="return fyFunction;">
クライアント側のスクリプトにはreturn false
コードの最後の行。