2013-02-19 119 views
0

不得不從asp:超鏈接改爲asp:linkBut​​ton,不能再使用鏈接按鈕中的navigateUrl ...任何建議?從超鏈接更改爲鏈接btn

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

回答

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"); 
} 

EDITED

我會改善這個答案。 HyperLinkLinkButton之間的主要區別是HyperLink不會回發,它只是簡單地向服務器請求NavigateURL。 LinkButton只是一個正常的Button。這意味着它會回發服務器,具有所有優點和缺點(例如,發送ViewState,更新控件等)

如果您只需要重定向到另一個頁面,可能是最好的選擇是HyperLink

1

LinkBut​​ton使用PostBackUrl,因爲您將數據「發佈」到另一個url。

1

您使用的PostBackUrl

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