我有一些包含按钮标记的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元素,但这也不起作用。
答案 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中,可以将LinkButton放在标签内。在Firefox和IE 10中,它不是。
它不能正常工作的原因很简单 - HTML 5标准不允许这样做。你只是不能在按钮内嵌入一个链接。
http://www.w3.org/TR/2011/WD-html5-20110525/the-button-element.html#the-button-element