asp LinkButton внутри тега HTML Button

У меня есть HTML-код, содержащий тег кнопки "<button></button>".

Я заметил, что если я помещу кнопку ссылки внутри этого элемента, обратная передача кнопки ссылки никогда не произойдет.

Итак, это не работает:

<button><asp:LinkButton ID="lnkExample" OnClick="lnkExampleBtn_Click"runat="server">Text</asp:LinkButton></button>

Метод сервера "lnkExampleBtn_Click" никогда не будет запущен.

Почему постбэк не работает?

Есть ли способ, чтобы кнопка ссылки работала внутри тега «кнопка»?

Я также попытался поместить элемент href с помощью специального метода _doPostback javascript, но это тоже не работает.


person montueron    schedule 19.12.2014    source источник
comment
Зачем вам кнопка ссылки в кнопке??   -  person Brian Mains    schedule 19.12.2014


Ответы (1)


Я попытался воспроизвести ваш случай.

Вот код позади:

public partial class Test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void btnTest_Click(object sender, EventArgs e)
    {
        lblTest.Text = "Test";
    }

    protected void btnTest2_Click(object sender, EventArgs e)
    {
        lblTest.Text = "Test2";
    }
}

А вот аспкс:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="WebApplication1.Test" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:LinkButton ID="btnTest" runat="server" OnClick="btnTest_Click">Test</asp:LinkButton>
            <button><asp:LinkButton ID="btnTest2" runat="server" OnClick="btnTest2_Click">Test2</asp:LinkButton></button>
            <button><a href="http://www.google.com/">test</a></button>
            <asp:Label ID="lblTest" runat="server"></asp:Label>
        </div>
    </form>
</body>
</html>

Что я нашел, так это то, что это зависит от браузера. В Chrome можно разместить LinkButton внутри тегов. В Firefox и IE 10 это не так.

Причина, по которой он не работает, проста: это не разрешено стандартом HTML 5. Вы просто не можете вставить ссылку в кнопку.

http://www.w3.org/TR/2011/WD-html5-20110525/the-button-element.html#the-button-element

Ссылка внутри кнопки не работает в Firefox

person Landeeyo    schedule 19.12.2014
comment
Большое спасибо за эти объяснения. - person montueron; 20.12.2014