asp链接标记内的asp LinkBut​​ton

时间:2014-12-19 16:18:40

标签: asp.net button postback linkbutton

我有一些包含按钮标记的Html代码&#34; <button></button>&#34;。

我注意到如果我在这个元素中放置一个linkbutton,就不会发生linkbutton的回发。

所以这不起作用:

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

服务器方法&#34; lnkExampleBtn_Click&#34;将永远不会推出。

为什么回发不起作用?

有没有办法让链接按钮在&#34;按钮内工作?#34;标签?

我还尝试使用javascript _doPostback特定方法放置一个href元素,但这也不起作用。

1 个答案:

答案 0 :(得分: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";
    }
}

这是aspx:

<%@ 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中,可以将LinkBut​​ton放在标签内。在Firefox和IE 10中,它不是。

它不能正常工作的原因很简单 - HTML 5标准不允许这样做。你只是不能在按钮内嵌入一个链接。

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

Link inside a button not working in Firefox