probleme datagrid

probleme datagrid - C#/.NET managed - Programmation

Marsh Posté le 19-07-2004 à 15:44:24    

J’aurais voulu savoir si il est possible de mettre des liens sur les éléments d’une datagrid. En fait j’aimerai faire appelle aux caractéristiques d’un elements dès qu’on aura clique sur celui ci. (ex : j’ai une datagrid qui affiche :  
- premiere colonne : le nom de l’artiste
- seconde colonne : le titre de la musique
et maintenant j’aimerais cliquer sur un nom d’artiste et afficher sec caractéristiques : nom, prénom, age, …). Bon ici ce n’est qu’un exemple mais j’ai à faire quelque chose de beaucoup plus évolué donc je ne peut pas tout afficher sur le même page. Toute solution est la bien venu.

Reply

Marsh Posté le 19-07-2004 à 15:44:24   

Reply

Marsh Posté le 19-07-2004 à 16:12:02    

aouis c'est possible.
 
En asp.net par exemple tu caches les champs "nom, prenom, age" avec la propriété 'visible'. Puis tu les fais apparaitre lors du click d'une ligne choisie.
Si ça prds trp de place en horysontal, j'conseillerai les datalists qui sont des datagrids personnalisables (si tu fais de l'asp.net). Là tu pourras aligné les champs en vertical pour gagner de l'espace.
 
J'ai pas mes codes sous la main là dc je ne peux pas te montrer d'exemples pour l'instant.
 
Par contre, si c'est en mode winform sous c# ou vb.net que tu fais le projet, là je ne sais pas du tt puisque les datagrids fonctionnent différemment.


Message édité par catoun le 19-07-2004 à 18:46:15
Reply

Marsh Posté le 20-07-2004 à 13:41:55    

Je fais de l'asp.net en c#.
Merci je vais voir si j'arrive à faire quelque chose avec ca.  

Reply

Marsh Posté le 20-07-2004 à 16:40:09    

Salut, dans les colonne de ton datagrid, met une colone comme celle-ci
 

Code :
  1. <asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="url" DataTextField="siteweb" SortExpression="siteWeb" HeaderText="Site Web"></asp:HyperLinkColumn>


 
Pour remplir le lien je me suis cree un url quand je fais une requete a une base de donner.  Dans le url, j'ajoute un id pour loader la page et donc quand tu clic sa ouvre une page...

Reply

Marsh Posté le 20-07-2004 à 16:50:12    

Oui c'est possible de mettre des liens sur des éléments de ta DataGrid.
 
Deux possibilités :
 
1/ colonne de type hyperlinkcolumn (facilement faisable via le designer)

Code :
  1. <asp:hyperlinkcolumn datanavigateurlfield="nomArtiste" datanavigateurlformatstring="details.aspx?id={0}" datatextfield="nomArtiste"></asp:hyperlinkcolumn>


 
2/ colonne template

Code :
  1. <asp:templatecolumn>
  2.    <itemtemplate>
  3.       <asp:hyperlink id="hyperlink1" runat="server" navigateUrl='<%# DataBinder.Eval(Container.DataItem, "nomArtiste", details.aspx?id={0}" ) %>'><%# DataBinder.Eval(Container.DataItem, "nomArtiste" ) %></asp:hyperlink>
  4.    </itemtemplate>
  5. </asp:templatecolumn>


Message édité par Vko le 20-07-2004 à 16:51:44

---------------
Mes gribouillages : http://vko.coldwire.net/galleries/
Reply

Marsh Posté le 20-07-2004 à 16:50:43    

Bin je me suis fais devancer ;)


---------------
Mes gribouillages : http://vko.coldwire.net/galleries/
Reply

Marsh Posté le 20-07-2004 à 16:53:47    

Vko a écrit :

Bin je me suis fais devancer ;)


 
En effet t'as pas été le + rapide a dégainé hihihi.
Bon là avec vos soluces il a du choix le South.

Reply

Marsh Posté le 21-07-2004 à 10:07:21    

Merci de votre aide.
Mais il me reste encore un petit problème à régler, j’aimerai pouvoir trier un HyperLinkColumn. Jusqu’à présent j’avais aucun problème pour trier les colonnes mais ça ne marche pas sur la nouvelle colonne créée. Voici mon code.
 
  <asp:DataGrid class="datagrid" id="DataGrid1" runat="server" bordercolor="#cbcbcb"
    cellpadding = "4" cellsapacing = "10" height = "100" headerstyle-backcolor = "#dfe7ff"
    AllowPaging="True" PageSize="2" PageCount="1" PagerStyle-Mode="NumericPages"
    PagerStyle-HorizontalAlign="Center" OnPageIndexChanged="Page_Change"
    AllowSorting="true" OnSortCommand="Page_Tri">  
   <Columns>
    <asp:HyperLinkColumn
      HeaderText="Marque"
      DataNavigateUrlField="Marque"
      DataNavigateUrlFormatString="essai2.aspx?id={0}"
      DataTextField="Marque"
      Target="_blank"/>
   </Columns>
  </asp:DataGrid>sur la nouvelle colonne créée. Voici mon code.

Reply

Marsh Posté le 21-07-2004 à 15:16:24    

Je viens de trouver la solution à mon probleme. Pour ce que ca interesse il suffit de rajouter le code suivant (SortExpression="Marque" ) apres la balise asp: hyperlinkcolumn.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed