OnClick LinkButton не запускается в IE8 - PullRequest
1 голос
/ 20 октября 2010

Следующее прекрасно работает в Chrome.

<asp:LinkButton runat="server" ID="lbEdit" OnClick="lbEdit_Click">
    <button type="button" class="edit">
         Edit
    </button>
</asp:LinkButton>

А вот CSS для кнопки и ее подкласса.

button
{    
    padding: 3px;
}
button.edit 
{
    background:#3f6096;
    border:none;
    font:10px verdana;
    color:#fff;
    width:71px;
    margin-top:3px;
}

Как видите, ничего особенного; только цвета и красивые вещи.
Я нажимаю на синюю кнопку «Редактировать», и она прекрасно запускает обратную передачу OnClick .... в Chrome!
Но если я делаю то же самое в IE8, он просто ничего не делает; даже не обнаруживает щелчок.

Чтобы помочь выявить проблему, я удалил тег и сохранил только слово «Редактировать», и оно отлично работает в IE8 как простая подчеркнутая ссылка; постбэк стреляет.

Итак, почему IE8 не может принимать что-либо в LinkButton?

Ответы [ 4 ]

4 голосов
/ 20 октября 2010

Зачем использовать LinkButton, если вам нужно обрабатывать обратную передачу и одновременно выглядеть как кнопка?Почему бы не сделать это просто кнопкой?Мне кажется, что единственная причина использовать один над другим это внешний вид.Функционально они оба должны вызывать обратную передачу.

1 голос
/ 20 октября 2010

Чего вы здесь добиваетесь?

У вас есть кнопка ссылки на стороне сервера с вложенной кнопкой HTML?

Кнопка LinkButton полезна, когда вы хотите гиперссылку чтобы иметь возможность выполнить обратную передачу.

Вы смотрели на отрендеренный HTML?Я не знаю, является ли наличие кнопки внутри тега привязки верным HTML.

Если вы хотите, чтобы обратная передача обрабатывалась определенным событием на стороне сервера, просто используйте ASP: Button.

Если вы этого не сделаете, просто используйте обычную кнопку HTML.

1 голос
/ 20 октября 2010

То, что вы делаете, - это не то, что вы должны делать, но я бы сказал, что IE, вероятно, ведет себя ближе всего к «правильно» здесь.

Вы не должны вкладывать элементы кнопок в другие элементы, предоставляющие ссылки. Вы можете просто удалить button изнутри LinkButton, вместо этого прикрепить к нему OnClick, заставить работать стилизацию, и это будет хорошо.

Причина, по которой я говорю, что я думаю, что IE ведет себя ближе к «правильно», заключается в том, что он делает то, что вы определили для внутреннего тега; что ничего (вы не прикрепили никаких действий к элементу button, на самом деле). Но на самом деле это не то, что вы должны делать в HTML, так как я не думаю, что поведение определяется в первую очередь.

0 голосов
/ 28 июля 2015

Вы можете использовать CssClass:

<asp:TemplateField HeaderText="Opciones">
    <ItemTemplate>
    <asp:LinkButton runat="server" Text="Hola!" CommandName="Deshabilitar" 
        CssClass="btn btn-primary"
        CommandArgument='<%# Item.Id %>' />
    </ItemTemplate>
</asp:TemplateField>
...