it-swarm.com.ru

Отключить обратную передачу при нажатии на кнопку

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

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

15
user947344

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

1
user947344
onClientClick="return false"

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

12
Tom Gullen

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

2
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

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

В <body>:

function myfunction() {
            return false;
        }

и в <head>:

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

Использовать этот:- 

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

Поместите кнопку 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
user8258013

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

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

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

0
kmcc049

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

0
seetha

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

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

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

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

0
Hugo Nava Kopp