0

必须从 asp:hyperlink 更改为 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>
4

3 回答 3

1

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

于 2013-02-19T12:43:21.287 回答
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和之间的主要区别在于LinkButtonHyperLink不会 PostBack,它只是简单地将 NavigateURL 请求到服务器。这LinkButton只是一个正常的Button。这意味着它将回发服务器,具有这样做的所有优点和缺点(例如发送 ViewState,更新控件等)

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

于 2013-02-19T12:44:09.507 回答
1

在链接按钮上,您使用PostBackUrl

<asp:LinkButton ID="InvoiceLink" runat="server"
     PostBackUrl="~/Invoices/List.aspx">
于 2013-02-19T12:45:19.723 回答