Необычное событие нажатия кнопки не запускается

Я работаю над причудливым дизайном для страницы ASPX, но у меня проблемы с запуском кнопок для запуска кода. Вот что у меня есть:

Это код ASPX:

<button runat="server" id="btnLogin" onserverclick="LoginClick_Click"></button>

И код позади:

protected void LoginClick_Click(object sender, EventArgs e)
    {
        notice.Visible = true;


   //     Response.Redirect("");

    }

Я нажимаю кнопку, чтобы увидеть, появляется ли что-нибудь (даже на пустой сломанной странице [да, я раскомментировал это]), но не иду. Я считаю, что это что-то простое, но я боролся здесь почти час и не уходил. Наверное, это радость программирования.

Редактировать:

 <button runat="server" id="btnLogin" OnServerClick="btnLogin_Click" ></button>

Это сработало. Кажется, заглавные буквы.


person Lord Relix    schedule 07.01.2014    source источник
comment
Страница отправляется обратно? Можете ли вы поставить точку останова на обработчике и посмотреть, остановится ли он на этом?   -  person Yuriy Galanter    schedule 08.01.2014
comment
stackoverflow.com/questions/1245033/ Проверьте это сообщение.   -  person Exzile    schedule 08.01.2014
comment
Да, это постбэки. Точка останова загрузки страницы активируется, но не событие кнопки.   -  person Lord Relix    schedule 08.01.2014
comment
Просто попробовал настроить базовый ASPX / CS - он работает так, как задумано. Вы уверены, что нажимаете правильную кнопку, которая подключена к нужному обработчику событий? Какие еще элементы управления есть на странице?   -  person Yuriy Galanter    schedule 08.01.2014
comment
Это странно. Да, я проверил. Я добавил обычную кнопку для тестирования, и обратная передача прошла отлично. Странный.   -  person Lord Relix    schedule 08.01.2014
comment
Ух, кажется, это заглавные буквы. OP отредактировал.   -  person Lord Relix    schedule 08.01.2014


Ответы (2)


Вам нужно быть более осторожным со своим синтаксисом.

<asp:Button runat="server" id="btnLogin" OnClick="btnLogin_Click" />

Код позади

protected void btnLogin_Click(object sender, EventArgs e)
    {
        notice.Visible = true;
    }
person mason    schedule 07.01.2014
comment
Я не использую встроенные кнопки ASP. Это прямая кнопка HTML. - person Lord Relix; 08.01.2014
comment
Если ... я должен ввести ‹asp.Button ... в обычную кнопку HTML? - person Lord Relix; 08.01.2014
comment
Вы указали, что этот вопрос касается веб-форм ASP.NET. Следовательно, вы должны использовать предоставленные элементы управления. Кнопка asp: специально создана для вызова функции на стороне сервера. Если у вас нет конкретной причины не использовать элементы управления ASP.NET, я предлагаю вам их использовать. - person mason; 08.01.2014
comment
Я могу использовать ImageButton (его изображение), но теряю эффекты CSS / JQuery, которые хочу иметь. - person Lord Relix; 08.01.2014
comment
@LordRelix Вы можете применять эффекты CSS и jQuery к кнопке ASP.NET или ImageButton. Вы не должны позволять этому мешать вам использовать правильный контроль. - person mason; 08.01.2014
comment
Действительно? Не знал этого. Я думал, что это в основном статические элементы управления. Посмотрим на это, не знал, что это возможно. - person Lord Relix; 08.01.2014
comment
Хотя я согласен с тем, что по возможности следует использовать WebControls (вместо HtmlControls), нет ничего «неправильного» в использовании простых элементов управления HTML в сценарии WebForms, поэтому элементы управления в пространстве имен System.Web.UI.HtmlControls существуют; в некоторых сценариях (устаревшие приложения и т. д.) может быть невозможно обновить все до WebControls. В OP - чтобы исключить возможность проблем с заглавными буквами, вместо этого подключите свои события в Page Init; таким образом не будет проблем с капитализацией, потому что объявление обработчика отсутствует в разметке. - person sh1rts; 08.01.2014

Если вы действительно заинтересованы в использовании кнопки, отличной от элемента управления ASP, вы можете просто нажать скрытую кнопку ASP с желаемой функциональностью, используя некоторые встроенные javascript и jquery ...

<asp:Button ID="btnLogin" runat="server" Visible="False" />
<button type="button" id="btnFancy" onclick="serverClick();">TextHere</button>

--

<script type="text/javascript">
function serverClick() {
    $('#<%=btnLogin.ClientID%>').click();
    }
</script>

Я бы не стал этого предлагать, но это должно сработать для вас.

person cmann83    schedule 07.01.2014