web-dev-qa-db-ja.com

ボタンをクリックしたときにポストバックを無効にする

<asp:Button>をクリックした後、ポストバックを無効にします。 onclick="return false"を割り当てることでそれを試みましたが、ボタンでは機能しません。

どうすれば修正できますか?

16
user947344

関連するコントロール/要素を含むUpdatePanelを使用して、これを修正できました。

0
user947344
onClientClick="return false"

これでうまくいくはずです! OnclickはASP.net関数を参照し、onClientClickはHTMLのコントロール上でOnClickとしてレンダリングします。

14
Tom Gullen

onclickは、サーバー側のイベントを結び付けるために使用されます。 <asp:button OnClientClick="return false;" />などのOnClientClickハンドラーを使用する必要があります

3
arviman

これらの答えがどれも役に立たないように見えました。私は解決策を見つけました。 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ボタンは私の問題を修正しました。これがあなたを助けたならば、答えとしてマークするか、投票してください。

1
bds89

これを使って:-

  someID.Attributes.Add("onClick", "return false;");
1
Sunil Chaudhary

それは私のためにこのように働いた:

<body>

function myfunction() {
            return false;
        }

および<head>

<asp:ImageButton ID="ImageButton1" runat="server" Height="52px" Width="58px" OnClientClick="myfunction(); return false;"/>
1
Ionut

次のように、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>

これがお役に立てば幸いです

0
user8258013

あなたはポストバック後にそれをしたいので、ダブルクリックポストバックを防ぎたいと思いますか?この場合、クライアント側で最初にクリックした後に設定する何らかの状態維持変数を用意するのが最善です。簡単な例として

_var clicked = false;
function AllowOneClick(){
   if(!clicked){
      clicked = true;
      return true;
    }
 return false;
 }
_

次に、OnClientClickを設定してボタンにこのメソッドの結果を返すので、OnclientClick="return AllowOneClick()"これはもちろん1つのボタンに対してのみ機能しますが、一般的な考え方が得られるはずです。

0
kmcc049

useSubmitBehavior = "false"を使用すると、onclickのポストバックを無効にできます。

0
seetha

私の場合、上記の解決策はどれも役に立たなかった。

私が望んでいたのは、最初にクライアント側で関数を呼び出してから、サーバーへのポストバックを停止することでした。私の解決策は、クライアント側の関数を呼び出す前に、単にreturnキーワードを追加することでした。

<asp:Button Runat=Server OnClientClick="return fyFunction;">

クライアント側のスクリプトにはreturn falseコードの最後の行。

0
Hugo Nava Kopp