【问题标题】:asp LinkButton inside html Button taghtml Button标签内的asp LinkBut​​ton
【发布时间】:2015-02-18 14:49:29
【问题描述】:

我有一些包含按钮标签“<button></button>”的 HTML 代码。

我注意到如果我在这个元素中放置一个链接按钮,链接按钮的回发将永远不会发生。

所以这是行不通的:

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

永远不会启动服务器方法“lnkExampleBtn_Click”。

为什么回发不起作用?

有没有办法让链接按钮在“按钮”标签内工作?

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

【问题讨论】:

  • 为什么要在按钮中添加链接按钮??

标签: asp.net button postback linkbutton


【解决方案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

【讨论】:

  • 非常感谢您的解释。
猜你喜欢
  • 1970-01-01
  • 2020-11-29
  • 2011-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
  • 2016-08-28
相关资源
最近更新 更多