ASP.NET/HTML: свойство HTML onClick внутри ASP.NET(.cs)

Я просто хочу узнать, есть ли способ разместить событие onClick внутри .cs:

<button type="submit" runat="server" id="btnLogin" class="button" onclick="btnLogin_Click();">

где Login_Click() должен находиться внутри .cs:

protected void btnLogin_Click(object sender, EventArgs e)
{
    // do something
} 

Пожалуйста, обратите внимание, что я не буду использовать кнопку ASP.NET здесь, и что я не буду помещать свое событие Login_Click() внутри .html/.aspx, чтобы я не мог "разоблачить" мои коды. Любые предложения?

Ответы

Ответ 1

Вы можете сделать это на любом серверном элементе управления, и эта кнопка становится серверным, определяя "runat=server". Вероятно, проблема связана с определением события:

<button ... runat="server" ... onServerClick="btnLogin_Click" />

Вам не нужно "();" там...

Кроме того, вы можете объяснить, почему вы не используете <asp:Button> здесь, потому что я действительно не вижу проблемы с этим...

Ответ 2

Вы хотите использовать onServerClick. Вот пример того, как это сделать на MSDN:

<button id="Button1" OnServerClick="Button1_OnClick" runat="server">
    Click me!
</button>


protected void Button1_OnClick(object Source, EventArgs e) {
    // secret codes go here
}

Ответ 3

btnLogin.Click += new EventHandler( btnLogin_Click );

назначит обработчик события btnLogin_Click кнопке Click event.

однако, я хотел бы указать, что назначение обработчика в разметке страницы aspx не "раскрывает ваши коды", так как HTML, переданный клиенту, не содержит в себе никакой информации.

Ответ 4

Я знаю это поздно, но я потерял столько времени на эту проблему. Я устанавливал InnerHtml div с кнопками. Вам нужно добавить type = "submit" к вашей кнопке, если вы хотите, чтобы она работала.

Ответ 5

Поздно, но для кого-то там: Примените UseSubmitBehavior="False". Пример

<button type="submit" runat="server" UseSubmitBehavior="False" type="button" id="btnLogin" class="button" onclick="btnLogin_Click();">