Добавить событие ServerClick в элемент ASP.NET <button> - PullRequest
2 голосов
/ 15 февраля 2011

Я хочу обработать событие щелчка HTML <button> (не <input type="button">) на серверной части.Причина, по которой я хочу обработать кнопку, заключается в том, что дизайн, который у меня есть, имеет элементы управления кнопками повсеместно, поэтому изменение всего CSS было бы гораздо более трудоемким.

Для моей кнопки у меня есть:

   <button type="submit" id="submit" runat="server">Send</button>

В моем коде позади:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            submit.ServerClick += new EventHandler(submit_click);
        }
    }

    protected void submit_click(object sender, EventArgs e)
    {
        // never being hit
    }

Возможно ли это?

Ответы [ 2 ]

3 голосов
/ 05 октября 2011

Другой способ - просто добавить его к элементу кнопки:

<button type="submit" id="submit" runat="server" onserverclick="Button1_OnClick">Send</button>

void Button1_OnClick(object Source, EventArgs e) 
  {
     // Do Something here
  }

http://msdn.microsoft.com/en-us/library/a8fd2268%28v=VS.100%29.aspx

3 голосов
/ 15 февраля 2011

Вы должны удалить условную проверку для if (Page.IsPostBack). Ваш код в настоящее время не будет работать, потому что обработчик onclick устанавливается только при первой визуализации страницы. Затем, когда пользователь нажимает на кнопку, происходит обратная передача, но теперь у кода вашей страницы больше нет обработчика, связанного с кнопкой, поэтому нет кода для выполнения. Просто сделай это:

protected void Page_Load(object sender, EventArgs e)
{
    submit.ServerClick += new EventHandler(submit_click);
}

protected void submit_click(object sender, EventArgs e)
{
    // now it should get hit
}
...