2010-04-26 3 views
2

J'ai un gridview avec un champ de modèle qui a une HyperLink:Construire un lien hypertexte dans un GridView dans ASP.NET WebForms - Eval ne fonctionne pas

<asp:TemplateField ItemStyle-Width="12%" HeaderText="VER" HeaderStyle-HorizontalAlign="Center" SortExpression="Ver" ItemStyle-HorizontalAlign="Center"> 
    <ItemTemplate> 
     <asp:HyperLink ID="HyperLink1" NavigateUrl="~/Admin/Teste/Teste.aspx?rac=<%#Eval('idApontamento')%>" runat="server">TEXT</asp:HyperLink> 
    </ItemTemplate> 
</asp:TemplateField> 

Je reçois The server tag is not well formed. dans la ligne HyperLink.

Que dois-je faire pour créer directement une chaîne de requête dans un HyperLink?

Répondre

9

Construisez votre lien comme ceci:

<asp:HyperLinkField HeaderText="Title" 
    DataTextField="Some Text" 
    DataNavigateUrlFields="idApontamento,CustomerID" 
    DataNavigateUrlFormatString="~/Admin/Teste/Teste.aspx?rac={0}&CustomerID={1}" /> 

Continuez à ajouter des valeurs délimitées par des virgules à la propriété DataNavigateUrlFields, et le balisage du DataNavigateUrlFormatString comme vous string.Format()

+0

Et maintenant. Comment puis-je ajouter plus de champs à la chaîne de requête? – Marcelo

+0

@MarceloRamires: J'ai mis à jour la réponse concernant plusieurs champs. –

0

Vous avez un guillemet supplémentaire après la symbole livre (#). Est-ce que supprimer cette aide?

3

Je ne pense pas que vous pouvez incorporer une expression comme ça, vous devez choisir de lui donner tout le texte, ou toute l'expression de liaison.

Heureusement, vous pouvez contatonate chaîne dans une expression de liaison. Essayez quelque chose comme ceci:

NavigateUrl = '<% # String.Concat ("~/Administration/Teste/Teste.aspx rac =?", Eval ("idApontamento"))%>'

+0

NavigateUrl = '<% # String.Concat ("~/Admin/Teste/Teste.aspx? Rac =", Eval ("idApontamento"))%>' vous manquait a). – ggonsalv

+0

l'ai eu, merci. – MStodd