1

以下工作在Chrome中运行良好。LinkBut​​ton的OnClick不会在IE8中触发

<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不能接受LinkBut​​ton内的任何东西?

回答

4

如果您需要处理回发并且同时看起来像一个按钮,为什么要使用LinkBut​​ton?为什么不把它变成一个Button?在我看来,使用其中一个的唯一原因是外观。在功能上,它们都应该引发回传。

+0

不知道为什么,我没有看到你的答案我张贴之前。 +1! – 2010-10-20 00:45:24

+0

那是为我做的;不知道为什么我开始使用LinkBut​​ton。切换到按钮,并使用相同的CSS它工作得很好。谢谢! – BeemerGuy 2010-10-20 00:48:25

+0

我遇到了类似的情况,在使用'OnClientClick'作为javascript确认对话框之后,'LinkBut​​ton'似乎不想继续触发它的'OnClick'事件。奇怪的是,只是改变为一个普通的ASP'Button'解决了这个问题,现在'OnClick'在IE中触发。 '¯\ _(ツ)_ /' – 2013-12-27 16:00:08

1

你在做什么不是你正在做的应该要做,但我会说,IE可能是一个行为最接近'正确'在这里。

您不应该将按钮元素嵌套在提供链接的其他元素中。您可以简单地从LinkButton中删除button,然后将OnClick附加到它,使样式工作,它会很好。

我说我认为IE的行为更接近'正确'的原因是因为它正在做你在最内层标签上定义的东西;这没什么。 (实际上,您尚未对button元素附加任何操作)。但是,实际上,这不是HTML中你应该做的事情,因为我不认为该行为是首先定义的。

1

你想在这里做什么?

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

当您想要超链接能够执行回发时,LinkBut​​ton很有用。

你看过呈现的HTML吗?我不知道是否有一个锚标记内的按钮甚至是有效的HTML。

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

如果你不用,只需使用普通的HTML按钮。

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> 
相关问题