从超链接更改为链接btn

时间:2013-02-19 12:40:42

标签: asp.net hyperlink webforms asplinkbutton

不得不从asp:超链接更改为asp:linkBut​​ton,不能再在链接按钮中使用navigateUrl了......有什么建议吗?

<asp:LinkButton ID="InvoiceLink" runat="server" NavigateUrl="~/Invoices/List.aspx">
           <asp:Label id="labelBindfromHomeToInvoice" runat="server" Text="<%# Bind('Site_Name') %>"/>
        </asp:LinkButton>

3 个答案:

答案 0 :(得分:1)

LinkBut​​ton使用PostBackUrl,因为您将数据“发布”到另一个网址。

答案 1 :(得分: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>

在CodeBehind

protected void InvoiceLink_Click(object sender, EventArgs e)
{
    Response.Redirect("~/Invoices/List.aspx");
}

<强> EDITED

我会改进这个答案。 HyperLinkLinkButton之间的主要区别在于HyperLink不会PostBack,它只是简单地向服务器请求NavigateURL。 LinkButton只是正常Button。这意味着它将PostBack服务器,具有执行此操作的所有优点和缺点(例如,发送ViewState,更新控件等)

如果您只需要重定向到另一个页面,可能是最佳选择HyperLink

答案 2 :(得分:1)

在链接按钮上使用PostBackUrl

<asp:LinkButton ID="InvoiceLink" runat="server"
     PostBackUrl="~/Invoices/List.aspx">