【问题标题】:change from hyperlink to link btn从超链接更改为链接 btn
【发布时间】:2013-02-04 03:36:03
【问题描述】:
必须从 asp:hyperlink 更改为 asp:linkButton,不能再在链接按钮中使用 navigateUrl...有什么建议吗?
<asp:LinkButton ID="InvoiceLink" runat="server" NavigateUrl="~/Invoices/List.aspx">
<asp:Label id="labelBindfromHomeToInvoice" runat="server" Text="<%# Bind('Site_Name') %>"/>
</asp:LinkButton>
【问题讨论】:
标签:
asp.net
hyperlink
webforms
asplinkbutton
【解决方案1】:
LinkButton 不能这样工作。 LinkButton 更像是带有超链接外观的Button。
这样你就可以处理 OnClick 事件了。
<asp:LinkButton ID="InvoiceLink" runat="server" OnClick="InvoiceLink_Click">
<asp:Label id="labelBindfromHomeToInvoice" runat="server" Text="<%# Bind('Site_Name') %>"/>
</asp:LinkButton>
在代码隐藏中
protected void InvoiceLink_Click(object sender, EventArgs e)
{
Response.Redirect("~/Invoices/List.aspx");
}
已编辑
我会改进这个答案。 HyperLink 和 LinkButton 之间的主要区别在于 HyperLink 不会 PostBack,它只是简单地向服务器请求 NavigateURL。 LinkButton 只是一个普通的Button。这意味着它将回发服务器,这样做的所有优点和缺点(例如发送 ViewState、更新控件等)
如果您只需要重定向到另一个页面,最好的选择可能是HyperLink
【解决方案2】:
LinkButton 使用PostBackUrl,因为您将数据“发布”到另一个 url。
【解决方案3】:
在链接按钮上,您使用PostBackUrl
<asp:LinkButton ID="InvoiceLink" runat="server"
PostBackUrl="~/Invoices/List.aspx">