2013-02-19 5 views
0

A dû changer d'asp: lien hypertexte à asp: linkButton, ne peut plus utiliser navigateUrl dans le bouton de lien ... des suggestions?passer du lien hypertexte au lien btn

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

Répondre

1

LinkButton ne fonctionne pas de cette façon. LinkButton est plus comme un Button avec un aspect de lien hypertexte. Ainsi, vous pouvez gérer l'événement OnClick.

<asp:LinkButton ID="InvoiceLink" runat="server" OnClick="InvoiceLink_Click"> 
    <asp:Label id="labelBindfromHomeToInvoice" runat="server" Text="<%# Bind('Site_Name') %>"/> 
</asp:LinkButton> 

Dans le CodeBehind

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

ÉDITÉ

Je vais améliorer cette réponse. La principale différence entre HyperLink et LinkButton est que HyperLink ne sera pas PostBack, il suffit de demander le NavigateURL au serveur. Le LinkButton est juste un Button normal. Cela signifie qu'il sera PostBack le serveur, avec tous les avantages et les inconvénients de faire cela (envoi ViewState par exemple, mettre à jour les contrôles, etc)

Si vous avez juste besoin de rediriger vers une autre page, probablement le meilleur choix, il sera être HyperLink

1

LinkButton utilise PostBackUrl, parce que vous "après" les données vers une autre URL.

1

sur un bouton de lien que vous utilisez le PostBackUrl

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