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> 
相關問題