ASP ImageButton против кнопки - PullRequest
4 голосов
/ 22 ноября 2011

Я новичок в asp.net и не совсем понимаю, как решить эту проблему.У меня есть обратный код, написанный для всего, и сейчас я просто делаю все "красиво".Изначально у меня была кнопка ASP для отправки формы.Теперь я хочу, чтобы кнопка была ASP ImageButton.Однако теперь мой метод возвращает ошибку из-за этого изменения.Вот как это выглядит:

 //.ascx file
 <div id="eSubmit">
    <asp:ImageButton id="btnSubmit1" runat="server" ImageUrl="~/Style/Images/addButtonE.png" />
</div>


 //method behind
 void btnSubmit_Click(object sender, EventArgs e)
    {
        if (!Page.IsValid) { return; }

        try
        {
            //do some data checking
            //bind entries
        }
        catch (ApplicationException ax)
        {
            ;
        }
    }

Ошибка, возникающая после изменения кнопки на кнопку image:

Невозможно преобразовать System.EventHandler в System.Web..UI.ImageClickEventHandler '

Итак, мой главный вопрос: как я могу исправить эту ошибку?И будет ли это влиять на данные, которые я отправляю на сервер, в любом случае (это вызовет другое поведение, чем когда это была просто кнопка)?

Ответы [ 3 ]

4 голосов
/ 22 ноября 2011

Используйте следующую строку

protected void btnSubmit_Click(object sender, ImageClickEventArgs e)

вместо

void btnSubmit_Click(object sender, EventArgs e)

, потому что кнопка Image имеет другой обработчик событий .. Спасибо, Гурав

3 голосов
/ 22 ноября 2011

ImageButton.OnClick имеет подпись события, отличную от Button.OnClick:

//imagebutton
void btnSubmit_Click(object sender, ImageClickEventArgs e)
{
    //.......
}

//button
void btnSubmit_Click(object sender, EventArgs e)
{
    //.......
}
0 голосов
/ 22 ноября 2011

попробуйте это ... скопируйте предыдущий код метода (в btnSubmit_Click), затем удалите весь метод, перейдите в пользовательский интерфейс (в режиме разработки), дважды щелкните кнопку изображения, вставьте скопированный код и выполните команду

...