Отключить обратную передачу при нажатии на кнопку - PullRequest
16 голосов
/ 25 сентября 2011

Я хочу отключить обратную передачу после нажатия <asp:Button>.Я пытался сделать это, назначив onclick="return false", но кнопка не работает.

Как я могу это исправить?

Ответы [ 10 ]

14 голосов
/ 25 сентября 2011
onClientClick="return false"

Это должно сделать это! Onclick будет ссылаться на функцию ASP.net, onClientClick будет отображаться как OnClick в элементе управления в HTML.

3 голосов
/ 25 сентября 2011

onclick используется для подключения событий вашего сервера.Вам необходимо использовать обработчик OnClientClick, например <asp:button OnClientClick="return false;" />

1 голос
/ 05 апреля 2017

Используйте это: -

  someID.Attributes.Add("onClick", "return false;");
1 голос
/ 18 марта 2016

Это сработало для меня так:

В <body>:

function myfunction() {
            return false;
        }

и <head>:

<asp:ImageButton ID="ImageButton1" runat="server" Height="52px" Width="58px" OnClientClick="myfunction(); return false;"/>
1 голос
/ 13 октября 2015

Поскольку ни один из этих ответов не помог мне. Я нашел решение. Вместо использования кнопки 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 устранила мою проблему. Пожалуйста, отметьте как ответ или проголосуйте, если это помогло вам.

0 голосов
/ 05 июля 2017

Поместите кнопку asp внутрь панели обновлений, как

<asp:UpdatePanel ID="updPnl" runat="server" UpdateMode="Conditional" RenderMode="Block">
  <ContentTemplate>
    <asp:Button ID="btnID" runat="server"  OnClick="btn_Click" />
  </ContentTemplate>
</asp:UpdatePanel>

Надеюсь, это полезно

0 голосов
/ 16 декабря 2015

с помощью UseSubmitBehavior = "false" вы можете отключить постбэки onclick

0 голосов
/ 04 декабря 2015

В моем случае ни одно из приведенных выше решений не помогло мне.

Я хотел сначала вызвать функцию на стороне клиента, а затем прекратить обратную передачу на сервер. Мое решение состояло в том, чтобы просто добавить ключевое слово return перед вызовом моей клиентской функции, то есть ::1004*

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

Мой клиентский скрипт содержит return false в последней строке кода.

0 голосов
/ 27 сентября 2011

Я мог бы исправить это, используя UpdatePanel, который включает в себя соответствующие элементы управления / элементы.

0 голосов
/ 25 сентября 2011

Так как вы хотите сделать это после обратной передачи, я предполагаю, что вы хотите предотвратить двойные щелчки обратной передачи? В этом случае лучше всего иметь какую-то переменную, поддерживающую состояние, которую вы устанавливаете после первого щелчка на стороне клиента. В качестве простого примера

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

Затем вы устанавливаете OnClientClick для возврата результата этого метода на вашу кнопку, поэтому OnclientClick="return AllowOneClick()" Это, конечно, будет работать только для одной кнопки, но должно дать вам общее представление.

...