IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[VB.net] selectionner une ligne DataGrid


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 13
    Points
    13
    Par défaut [VB.net] selectionner une ligne DataGrid
    Bonjour,

    J'ai un dataGrid, j'arrive a changer la couleur d'une ligne lors du passage de la souris. Je voudrais que lorsque l'on clique sur une ligne celle ci change de couleur pour que pour l'utilisateur elle soit "selectionnée".

    Avec onclick la couleur change lorsque l'on enleve la souris du dataGrid... Comment faire pour qu'elle reste ? & ensuite comment recupperer les valeurs de cette ligne selectionnée ?

    En gros j'utilise ce dataGrid comme une listBox.

    Merci de votre aide !!

    MichMich

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    personne n'a déja utilisé un datagrid dans ce contexte ?

    please

  3. #3
    Membre du Club Avatar de liliprog
    Inscrit en
    Juillet 2004
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 135
    Points : 61
    Points
    61
    Par défaut
    si tu utilise visual studio pour developper, je pense que c'est assez facile:
    • Tu selectionne ta datagrid

    • Tu cliques sur générateur de propriété

    • Tu vas dans format puis tu selectionnes élement selectionné

    • Et enfin tu lui affecte la couleur, etc... que tu souhaite


    J'espere avoir repondu a ta question.

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    Merci pour ta réponse mais c'est pas tout a fait ca !!

    Voila ma fonction pour changer la couleur s'une ligne lors du survol de la souris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Public Sub dg_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGridInst.ItemDataBound 
     
     
    'Gestion de la couleur lors du passage de la souris 
            If Not e.Item.ItemIndex = -1 Then 
                If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then 
                    e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='#FFC0C0'; this.style.cursor='pointer'") 
                    e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#CCCCFF'") 
               End If 
            End If 
        End Sub
    cela marche !! c'est déja ca...

    & voici le code de mon dataGrid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <ASP:DATAGRID id="MyDataGrid" runat="server" SelectedItemStyle-ForeColor="#00ff00" Height="112px"
    				BackColor="#CCCCFF" BorderColor="Black" AllowSorting="True" GridLines="Horizontal" Font-Names="Verdana"
    				AutoGenerateColumns="False" HeaderStyle-BackColor="#aaaadd" Font-Size="8pt" Font-Name="Verdana"
    				Width="608px" OnItemDataBound="dg_ItemDataBound" OnSortCommand="MyDataGrid_Sort">
    				<SelectedItemStyle ForeColor="Olive" BorderColor="#404040" BackColor="Blue"></SelectedItemStyle>
    				<HeaderStyle Font-Size="Larger" Font-Bold="True" BackColor="#AAAADD"></HeaderStyle>
    				<Columns>
    					<asp:BoundColumn DataField="idSalarie" SortExpression="idSalarie" HeaderText="idSalarie">
    						<ItemStyle Wrap="False"></ItemStyle>
    					</asp:BoundColumn>
    					<asp:BoundColumn DataField="nom" SortExpression="nom" HeaderText="nom"></asp:BoundColumn>
    					<asp:BoundColumn DataField="prenom" SortExpression="prenom" HeaderText="prenom"></asp:BoundColumn>
    					<asp:BoundColumn DataField="motDePasse" SortExpression="motDePasse" HeaderText="mot De Passe"></asp:BoundColumn>
    				</Columns>
    </ASP:DATAGRID>

    Pour l'instant j'arrive a remplir ma dataGrid avec ma base de données, a trier les colonnes, a changer la couleur lors du survol.
    Mais je n'arrive pas lors d'un clic a changer la couleur de la ligne.

    Je voudrais un fonctionnment identique a cela :
    http://philflash.inway.fr/dgstyle2/dgstyle2.html


    Je suis plus très loin après une journée de recherche !!

    Ensuite je veux recupérer les données de ligne selectionnée, et cela je n'y arrive pas non plus.

    Merci a tt le monde

    MichMcih

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    Public Sub dg_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGridInst.ItemDataBound 
     
     
    'Gestion de la couleur lors du passage de la souris 
            If Not e.Item.ItemIndex = -1 Then 
                If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then 
                    e.Item.Attributes.Add("onmouseover", "this.style.backgroundColor='#FFC0C0'; this.style.cursor='pointer'") 
                    e.Item.Attributes.Add("onmouseout", "this.style.backgroundColor='#CCCCFF'") 
                    e.Item.Attributes.Add("onclick", "this.style.backgroundColor='#FFC0C0'") 
               End If 
            End If 
        End Sub
    Ca passe pas ça??

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    J'ai déja essayer et le problème c'est que dès que on enlève le pointeur de la souris de la cellule, op la couleur reviens a la couleur initiale !! Lorsque l'on clique et que l'on reste dessus ca marche mais des que l'on bouge ca foire ...

    D'autre solutions ?

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Bah oué c'est parce que lors du click il change de couleur mais ensuite il affecte la couleur de l'evenement mouseover.

    Si tu veux que ca fasse comme dans ton exemple retire le mouseover et mouseout.

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    c'est cool ca marche !! Merci!

    Comment faire pour que l'on est que une ligne qui puisse changé de couleur ? & ensuite recuppérer les valeurs de celle ci ?

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Comment faire pour que l'on est que une ligne qui puisse changé de couleur ?
    Comprend pas la question



    ensuite recuppérer les valeurs de celle ci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    e.Item.Attributes.Add("onClick", "document.Form1.elements['" + unChampdetonform + "'].text = 'e.Item.Cells(0).Text';")
    Voici un exemple que j'utilise, avec un champ caché pour recupere mon resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    strParamUrl = e.Item.Cells(Session("indexLogin")).Text)
                strCommclick = "document." + formName + ".elements['" + txthidden.UniqueID + "'].value = '" & strParamUrl & "';"
                 e.Item.Attributes.Add("onClick", strCommclick)

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 29
    Points : 13
    Points
    13
    Par défaut
    et bien la actuelement, je clique sur une ligne n: elle change de couleur : on va dire qu'elle est "selectionnée". C'est ok !

    Je clique sur une autre ligne n+1 : elle change de couleur aussi.

    il y a donc 2 lignes selectionnées, moi je veux que seule la dernière ligne cliqué soit "selectionnée".

    ai-je bien expliqué ?

  11. #11
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut à tous,

    OS : XP PRO
    Framework : 1.1
    Environnement : VS 2003

    J'ai un problème avec mon datagrid. La modification de la couleur d'une ligne de mon datagrid lorsqu'on clique dessus fonctionne mais lorsque que je clique sur un bouton de ma page, il me dit : "impossible d'afficher la page".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Sub DataGrid1_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
     
            If Not e.Item.ItemIndex = -1 Then
     
                If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
     
                    'si la ligne ci-dessous est présente, ca ne marche pas
                    'par contre, si je l'enléve, mon appli tourne correctement
                    e.Item.Attributes.Add("onclick", "this.style.backgroundColor='#CCCCFF'")
     
                End If
            End If
    Le probléme arrive au rechargement de la page et donc du datagrid.

    Pour ton pb MichMich29, tu peux passer par des variables sessions pour sauvegarder le numéro de la ligne qui a été précédement sélectionner.

    Merci d'avance

    ++

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    j'ai vue ce que tu as realisé sur datagrid ,moi aussi je suis bloqué sur un datagrid en fait je viens de commencer laprogrammation en VB.net '

    alors mon probleme c'est queje dois recupere l'information qui se trouve dans la derniere ligne d'un datagrid et l'enregistre dans une table dans une base de donné.

    alors je dois a chaque fois faire le test si c'est la dernier ligne apres je dois recuperé l'information de la deuxieme colone de cette ligne , j'espre que tu pourra me donné des idée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.net] Changer couleur ligne DataGrid
    Par bguihal dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/07/2016, 06h54
  2. Réponses: 6
    Dernier message: 09/06/2009, 14h13
  3. selectionner une ligne de Datagrid en VB6.0
    Par anasthasia dans le forum VB.NET
    Réponses: 2
    Dernier message: 20/04/2009, 13h25
  4. Réponses: 1
    Dernier message: 18/11/2006, 14h06
  5. [JEditorPane]Selectionner une ligne
    Par )3lade dans le forum Composants
    Réponses: 8
    Dernier message: 20/01/2004, 10h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo