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

VB.NET Discussion :

Récupération colonne masquée GridView


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 53
    Par défaut Récupération colonne masquée GridView
    Bonjour à tous !!

    Je vous présente mon soucis :

    Une application web, en VB / ASPX. Je dispose d'un magnifique GridView, rempli à l'aide d'un SqlDataSource, le tout en aspx, je vous présente le code :

    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
    17
    18
    19
    20
    21
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataSourceID="SqlDataSource1" SkinID="dataGrid" onrowcommand="GridView1_RowCommand">
        <Columns>
            <asp:TemplateField AccessibleHeaderText="id_session" HeaderText="id_session">
                <EditItemTemplate>
                    <asp:TextBox ID="txt_id_session" runat="server" Text='<%# Bind("id_session") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="lbl_id_session" runat="server" Text='<%# Bind("id_session") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
     
     
     
     
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:Formation_2014ConnectionString %>" 
            SelectCommand="SELECT s.id_session, f.libelle_formation, s.date_debut_session, s.date_fin_session, COUNT(p.id_personne) AS Expr1 FROM Sessions AS s LEFT OUTER JOIN Participe AS p ON p.id_session = s.id_session AND p.actif = 1 RIGHT OUTER JOIN Formation AS f ON f.id_formation = s.id_formation WHERE (s.date_fin_session > GETDATE()) OR (s.date_fin_session < GETDATE()) OR (S.date_fin_session = GETDATE()) GROUP BY s.id_session, f.libelle_formation, s.date_debut_session, s.date_fin_session" >
        </asp:SqlDataSource>
    Jusque là, tout se passe bien, ma requête s’exécute correctement, mon GridView se rempli.

    Et viens le côté amusant, j'ai besoin de récupérer dans mon codeBehind en VB, la valeur contenu dans ma première colonne, à savoir "id_session", cette colonne est masquée dans le code de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Protected Sub OnRowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GridView1.RowCreated
            GridView1.Columns(0).Visible = False
            'e.Row.Cells(0).Visible = False
            'Permet de ne pas afficher le champ Id mais de le prendre en compte tout de même (Requête)
        End Sub
    Je n'utilise plus la seconde méthode (en commentaire) car celle-ci supprime la pagination de mes GridView je ne sais pour quelle raison.

    Et ensuite seulement, dans un autre Sub, je dois récupérer la valeur de ma colonne, j'ai essayé de plusieurs manières, jamais rien n'y fait >< Si quelqu'un peut me venir en aide ...

    Voici mes tests actuellement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim id_session = GridView1.SelectedRow.Cells(0).Controls(0).ToString ' Retourne System.Web.UI.Literalcontrol
    Dim id_session = GridView1.SelectedRow.RowIndex 'Retourne le numéro de la ligne
    Nom : Sans titre.png
Affichages : 215
Taille : 26,9 Ko

    Voila comment se présente ma page au final, une fois que l'utilisateur aura cliqué sur "Sélectionner", trois nouveau lien apparaîtrons chacun menant vers une page dont l'url se terminera par mon "id_session".

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Bonjour,

    Ce n'est pas un problème de Visible... Puisque ta ligne de code te retourne quelque chose.

    En cherchant deux secondes sur google (vb.net Gridview recupérer valeur cellule), tu tombes sur ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim t As String = GridView1.Rows(n).Cells(1).Text

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 53
    Par défaut
    J'ai déjà cherché bien plus que deux secondes sur Google ...

    Cette solution fonctionne pour n'importe quelle cellule de mon GirdView, Hormis celle que je veux, je peux sans problème récupère date, nombre de participant, libelle, mais je ne peux pas récupérer la valeur de ma cellule 0, contenant l'id. De plus je dois utiliser SelectedRow, et non row(n) l'utilisateur pouvant sélectionner n'importe quelle ligne :/

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 53
    Par défaut
    Finalement, grâce aux membres du Chat, nous avons une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim id_session = (CType(GridView1.SelectedRow.Cells(0).Controls(1), Label)).Text
    Merci bien !

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

Discussions similaires

  1. figer colonne dans gridview
    Par beabea dans le forum ASP.NET
    Réponses: 1
    Dernier message: 17/08/2007, 16h04
  2. supprimer les colonnes masquées d'une feuille
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/07/2007, 16h05
  3. fixer la taille des colonnes du gridview
    Par FamiDoo dans le forum ASP.NET
    Réponses: 2
    Dernier message: 19/06/2007, 14h57
  4. Réponses: 2
    Dernier message: 05/02/2007, 10h19
  5. [MFC] Récupération du masque de sous-réseau
    Par ChrSan dans le forum MFC
    Réponses: 2
    Dernier message: 02/02/2004, 16h31

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