ASP.Button - OnClientClick неправильно запускает - PullRequest
0 голосов
/ 12 сентября 2011

У меня есть кнопка asp.net, и я использую OnclientClick, чтобы закрыть окно

<asp:Button ID="btnCancelSomething" runat="server" class="type-button" 
                    Text="Cancel"  OnClientClick = "Javascript:self.close()" 
                    onclick="btnCancelSomething_Click"/>

событие onclick ничего не делает, и я планирую удалить его. Однако, когда я нажимаю кнопку в первый раз, она снова загружает страницу. Я нажимаю кнопку еще раз, затем скрипт запускается.

Как сделать так, чтобы окно закрывалось в первый раз?

1 Ответ

4 голосов
/ 12 сентября 2011

Если у кнопки все равно не будет никаких серверных функций, зачем вообще ставить ее asp:Button?Обычная кнопка отлично справится с задачей:

<input type="button" value="Cancel" class="type-button" onclick="self.close()" />

Таким образом, это чисто клиентская сторона, так как это все функциональные возможности, которые в любом случае необходимы.Это не вызовет ненужного «постбэка».

Вы даже можете сделать шаг вперед и отделить разметку от функциональности:

<input type="button" value="Cancel" class="type-button" id="cancelButton" />

Затем в теге scriptв другом месте или в отдельном файле:

$('#cancelButton').click(function() {
  self.close();
});

(Конечно, в этом примере предполагается использование jQuery. Но что же не так? Разделение разметки и функциональности, если здесь ключевой момент, хотя. Как вы этого добиваетесь?это, даже то, как вы отождествляете элемент с id, как в моем примере или каким-либо другим способом, зависит от вас.)

...