LinkBut​​ton的OnClick不会在IE8中触发

时间:2010-10-20 00:20:51

标签: asp.net internet-explorer google-chrome onclick asplinkbutton

以下在Chrome中运行良好。

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

这里是CSS for button及其子类。

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

正如你所看到的,没什么特别的;只是颜色和美丽的东西。
我点击蓝色的编辑按钮,它就可以点亮OnClick回复了....在Chrome!中 但是,如果我在IE8中做同样的事情,它什么都不做;甚至没有检测到点击。

为了帮助查明问题,我删除了标签并保留了单词“Edit”,它在IE8中作为一个简单的带下划线的链接正常工作;回击火灾。

那么,为什么IE8不能接受LinkBut​​ton中的任何内容?

4 个答案:

答案 0 :(得分:4)

如果你需要处理回发并同时看起来像一个按钮,为什么要使用LinkBut​​ton?为什么不把它变成一个按钮呢?在我看来,使用一个在另一个上面的唯一原因是外观。从功能上讲,它们都应该触发回发。

答案 1 :(得分:1)

你所做的并不是你想要做的事情,但我会说IE可能是最接近'正确'的行为。

您不应将按钮元素嵌套在提供链接的其他元素中。您只需从button内删除LinkButton,然后将OnClick附加到其上,使样式生效,这样就会很好。

我之所以说我认为IE的行为更接近'正确'是因为它正在做你在最里面的标签上定义的内容;这没什么。 (实际上,您尚未将任何操作附加到button元素)。但实际上,这不是你应该用HTML做的事情,因为我认为行为不是首先定义的。

答案 2 :(得分:1)

你想在这里实现什么目标?

您有一个服务器端链接按钮,带有嵌套的HTML按钮?

当您希望超链接能够执行回发时,LinkBut​​ton非常有用。

您是否看过呈现的HTML?我不知道锚标签内是否有按钮甚至是有效的HTML。

如果您希望回发由特定的服务器端事件处理,只需使用ASP:Button。

如果你不这样做,只需使用常规的HTML按钮。

答案 3 :(得分:0)

您可以使用 CssClass:

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