faire des hypertexts avec parametre get dans un GridView
Bonjour,
J’utilise Microsoft Visual Studio, je suis en train de faire un projet pour l’école en ASP.NET et j’ai un petit problème.
Voila, alors j’ai un gridview qui affiche une colonne avec des noms de donnés. J’aimerais que cette colonne face office de menu, et donc devra réagir en lien hypertext. Mais j’aimerais que le lien soit dirigé sur la page ~/Visiteur/projet.aspx
Mais avec un paramètre en GET. Ce serait l’id de l’enregistrement. (J’utilise une base de données SQLServer)
Comment puis-je faire pour faire ce lien avec un get. Exemple (~/Visiteur/projet.aspx ?id=7a8ef1cd-4126-415c-a3b5-2fca9144d433)
Franchement merci d’avance
Autre solution et remarque méthodologique
La fonctionnalité que vous recherchez est intégrée par défaut dans le GridVew.
1) Sur le GridView, via le SmartTag faire 'Modifier les colonnes', ou aller dans la collection Columns.
2) Sélectionner dans la liste des champs disponibles HyperLinkField puis faire ajouter. Il ne reste plus qu'à configurer ce lien.
3) Dans la propriété DataNavigateUrlFormatString saisir le format de l'url voulu, donc dans le cas présent quelque chose du genre :
Code:
~/Visiteur/projet.aspx ?id={0}
4) Dans la propriété DataNavigateUrlFields saisir le nom du champ dont la valeur sera substituée à {0} dans DataNavigateUrlFormatString. Donc dans le cas présent le champ contenant l'id du client. Dans la pratique on peut créer un format qui utilise plusieurs champs.
C'est fini.
Le code aspx produit sera du genre :
Code:
1 2 3 4 5 6
|
<asp:GridViewID="GridView1"runat="server">
<Columns>
<asp:HyperLinkFieldDataNavigateUrlFields="CLI_UID"DataNavigateUrlFormatString="~/Visiteur/projet.aspx ?Id={0}"/>
</Columns>
</asp:GridView> |
Remarque méthodologique
Je précise que la remarque suivante n'a aucun caractère ressemblant au moindre petit reproche. Mon objectif est plutôt d'essayer d'attirer l'attention sur la méthodologie.
Je constate en effet au travers des forums que de nombreuses questions témoignent du fait que lire la documentation ne fait pas parti des habitudes.
Avant d'utiliser un contrôle pour la première fois, il est fondamental de prendre le temps de lire la documentation le concernant. Ce n'est pas une perte de temps mais un investissement.
Comment lire la documentation d'un contrôle
1) Lire attentivement la page de documentation générale.
2) Brasser la liste des membres du contrôle (propriétés / méthodes / évènements)
3) Lire la description des membres qui ont attirés notre attention.
4) Essayer de comprendre les exemples.
5) Au cours de ces différentes étapes prendre note des points obscurs et prendre note des fonctionnalités que l'on trouve intéressantes et utiles. Essayer de résoudre les incompréhensions avant d'utiliser le contrôle.
Par exemple, dans le cas présent, la page de présentation du GridView liste les types de colonnes :
BoundColumn
Affiche une colonne liée à un champ dans une source de données. Elle affiche chaque élément figurant dans le champ sous forme de texte. Il s'agit du type de colonne par défaut du contrôle DataGrid.
ButtonColumn
Affiche un bouton de commande pour chaque élément dans la colonne. Cela vous permet de créer une colonne de contrôles boutons personnalisés, tels que les boutons Add ou Remove.
EditCommandColumn
Affiche une colonne qui contient des commandes de modification pour chaque élément dans la colonne.
HyperLinkColumn
Affiche le contenu de chaque élément dans la colonne sous forme de lien hypertexte. Le contenu de la colonne peut être lié à un champ dans une source de données ou à du texte statique.
TemplateColumn
Affiche chaque élément dans la colonne suivant un modèle spécifié. Cela vous permet de fournir des contrôles personnalisés dans la colonne.
On constate immédiatement qu'en ce qui concerne HyperLinkColumn l'explication permet de comprendre ce que l'on peut en faire.
Manque de temps
Que je fasse des audits, que ce donne une formation, que je conseil les développeurs auxquels je fournis des solutions... combien de fois j'ai entendu cet argument : "j'ai pas le temps".
Cet argument est vrai dans la vie de tous les jours. Nous manquons de temps pour tondre notre pelouse, pour faire nos courses, pour remplir la paperasse... Mais qu'arrive-t-il quand on ne prend pas le temps ?
Moi ce que je sais, c'est que l'univers est régis par des lois. On peut toujours essayer de les enfreindre ou de ne pas en tenir compte, mais tôt ou tard on en a le revers de médaille. Or, il n'y a aucune raison pour que l'informatique échappe aux lois de l'univers.
Le problème avec l'informatique c'est que c'est généralement tard plus que tôt qu'arrivent les conséquences. Si on ne tiens pas compte de la loi qu'est la pesanteur et que l'on décide de se jeter par la fenêtre pour descendre plus vite les étages, la loi nous rattrape immédiatement. Alors qu'en informatique, la plupart du temps les conséquences se présentent des mois plus tard. Les conséquences peuvent être dramatiques. Et le pire, c'est qu'elles génèrent bien souvent une perte de temps considérable, bien supérieur au temps qu'il aurait fallu investir pour les éviter.
La méthode
Mon expérience m'a montré que rien ne remplace la méthode, même pas le génie. Faire preuve de méthode ce n'est pas perdre du temps, c'est en investir. La méthode rapporte du temps à très long terme.
Mr Albert Einstein avait en son temps posé un problème qu'environ 2% de la population de la planète pouvait résoudre (soit ceux ayant un QI d'au moins 150).
Ce qui est amusant, c'est que même sans un tel QI, avec un peu de temps et un peu de méthode, on trouve la solution. La méthode et le temps sont comme des boosters de capacités.
Alors si comme moi vous n'avez pas 150 de QI, faites un usage intensif de la méthode et investissez convenablement votre temps.