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 :

Datagrid Et CheckBox


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut Datagrid Et CheckBox
    Bonjour à tous,

    J'ai créé un DataGrid Rempli à l'aide d'une requête SQL.
    Jusqu'ici pas de problème.

    Pour chaque ligne rapportée par ma requête SQL j'ai rajouté une checkbox dans la dernière colonne du DataGrid.

    Ma question est la suivante:
    Comment est ce que je peux connaître les checkbox qui ont été cochées ?

    J'ai mi un AutoPostBack sur la checkbox mais je ne sais pas quoi mettre d'autre comme propriété au niveau de mon code html. Et que mettre dans mon code VB ?

    Merci d'avance.

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Cette question a déjà été posée 100 fois, et 100 fois les réponses ont été données...

    En utilisant la recherche avec les mots clés "checkbox datagrid", en 10 secondes, on trouve ca...

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut
    Ok man...

    No stress !!! I don't wanna work today !

    Non sérieusement sorry. Je viens de découvrir ce site!

    En tout cas merci pour ta réponse !

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Tu viens de découvrir ce site, l'internet, l'usage de la souris et de l'informatique en général non ? Parceque si tu es internaute, tu n'es pas sans savoir qu'il y a TOUJOURS une fonction de recherche sur un forum
    pour trouver la fonction recherche, je te conseille de faire CTRL+F, "recherche".

    Et bon courage pour le développement, et le weekend

  5. #5
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    CTRL+F, "recherche"

    tu serais pas en train de nous faire une recherche récursive ?

    Mais je comprends ta position calagan, il semblerait que beaucoup de questions dont on peut trouver une réponse simplement (avec un peu d'investissement personnel) soient posées ces temps.

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    essaye !

    tu tapes ctrl+f puis "recherche"

    rien de récursif là dedans, cela ne fait que mettre "recherche" en surbrillance

    pour que ce soit récursif il faudrait ctrl+f puis "recherche" puis "recherche"

  7. #7
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    ce n'était que boutade.
    Mais j'admets elles sont trop pourries, je sors

  8. #8
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut
    Bon les gens,

    Je sais bien qu'il y a toujours une fonction recherche LOL ...

    Après vos bons conseils de recherches j'ai pu avancer un peu dans mon problème mais il n'est toujours pas résolu...

    Voici mon souci.

    Du côté HTML j'ai mon Datagrid nommé : dgdListeFicheMensuelle

    Le code au niveau de la checkbox est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <asp:TemplateColumn SortExpression="Generation" HeaderText="&nbsp&nbspEffectuer Génération&nbsp&nbsp">
    										<ItemStyle Wrap="False" HorizontalAlign="Center"></ItemStyle>
    										<ItemTemplate>
    											<asp:checkbox id="Check" runat="server">
    											</asp:checkbox>
    										</ItemTemplate>
    									</asp:TemplateColumn>
    J'ai ensuite créé un bouton en dehors de mon datagrid qui est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:button id="GenerateAll" runat="server" CssClass="cssSubmitButton" Text="Générer" CommandName="Update" Width="500px" Visible="True" align="center">
    										</asp:button>
    Enfin dans mon code VB j'ai créé la fonction suivante:

    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
    Private Sub btnAccess_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GenerateAll.Click
                'dgdListeFicheMensuelle.DataBind()
                Dim i As Integer
                i = 0
                Dim items As DataGridItem
                Dim chkItem As System.Web.UI.WebControls.CheckBox
     
                For Each items In dgdListeFicheMensuelle.Items
                    chkItem = CType(items.FindControl("Check"), System.Web.UI.WebControls.CheckBox)
                    If chkItem.Checked = True Then
                        Me.LblTest.Visible = True
                        Me.LblTest.Text = "OK1"
                    Else
                        Me.LblTest.Visible = True
                        Me.LblTest.Text = "OK2"
                    End If
                    i = i + 1
     
                Next items
            End Sub
    Seulement le souci c'est que lorsque je lance en mode "pas à pas" et que je clique sur mon bouton, je rentre dans la fonction mais je ne rentre pas dans la boucle.

    Est-ce que quelqu'un voit la boulette de mon code ???

    Merci d'avance!

  9. #9
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Si tu ne rentres pas dans la boucle, c'est que tu n'as pas d'items!

    Mets un point d'arrêt sur ton for each, quand tu arrives dessus en pas à pas, fais F8 pour passer une ligne, puis pointes ta souris sur items et regarde combien d'items tu as dans la datagrid.

    Comme ça je ne vois pas d'où vient le problème, tout me paraît bon.

    PS : pas la peine de passer par MP.

  10. #10
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    oups désolé on s'emporte desfois dans des blagounettes.

    dgdListeFicheMensuelle.Items te rapporte combien en debogage ?

    Si ca te rapporte 0, regarde si tu ne reload pas ton datagrid.

  11. #11
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut
    Bien vu tout ca !

    Problème résolu....

    Mais qui dit problème résolu dit autre problème en vu.

    Je voulais savoir s'il était possible en VB de dire tel bouton a été cliqué(j'ai des boutons cachés que l'utilisateur ne voit pas mais j'aimerai qu'ils se déclenchent sous certaines conditions).

    J'ai un peu recherché dans les attributs qu'on peut mettre au bouton mais je ne trouve rien du style :

    MonBouton.IsClicked = True

    Je ne sais pas si ça existe

  12. #12
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Quel est l'intérêt de déclencher un clic sur des boutons cachés ?
    Autant exécuter une procédure directement quand tu le souhaites.

    Je ne comprend pas bien ton besoin, dis en plus.

  13. #13
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut
    En fait je continue le développement d'une appli...

    Cette appli génère des fiches. L'utilisateur voit apparaître un DataGrid avec toutes les fiches qu'il peut générer.

    Dans ce datagrid il y a la dernière colonne qui est composé de boutons(1 par ligne qui appelle la fonction générer de la fiche correspondante). Quand l'utilisateur clique dessus la fiche se génère.

    Moi ce que je dois faire c'est faire en sorte que l'utilisateur puisse choisir plusieurs fiches à générer et qu'elles se génèrent d'un coup(et non pas une par une sachant que la génération peut durer jusqu'à une minute).

    Donc je me suis dit que la méthode la plus simple était de cacher la colonne avec tous les boutons, de rajouter une colonne avec des checkbox, de rajouter un bouton en dehors du datagrid.
    Ensuite vérifier quelles checkbox sont cochées et dès qu'une checkbox est coché j'aimerai faire en sorte que le bouton correpondant soit dans l'état "Cliqué" pour que la fiche se génère.

    Est-ce possible et suis-je assez clair dans mes propos ?

  14. #14
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    Donc on peut supposer que tes boutons sont planqués dans ton datagrid.

    Déja que pour les intercepter , il faut passer par l'evenement itemcommand, bah c'est plus possible vu que ton bouton de validation ne se situe pas dans le datagrid.

    Mais en revanche, vu que tu reprends l'application, l'évenement itemcommand doit être implémenté non?

    Pour faire simple, je suivrais la méthode de callagan, des procédures avec simulation du commandargument...

    En revanche je ne pense pas que tu gagnes en temps pour tes fiches. Si tu mets une minute pour générer 1 fiche, je ne vois pas comment tu en mettra moins de 2 pour 2 fiches. (Peut-ête du multithreading?)

  15. #15
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut
    ItemCommand fait quoi exactement ?

    Lorsque je cliques sur mon bouton Validation je peux bien trouver si une checkbox est checked ou non ... alors pourquoi ne pourrais-je pas intervenir sur un bouton qui se trouve dans le datagrid ?

  16. #16
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut
    Ah oui j'ai bien un itemcommand.

    En fait dès qu'on clique sur le bouton dans le datagrid cela déclenche la fonction qui justement lance la génération de la fiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ItemTemplate>
    											<asp:button id="bt_Generation" runat="server" CssClass="cssSubmitButton" Text='<%# DataBinder.Eval(Container, "DataItem.TxtGénération") %>' CommandName="Update" Width="110px">
    											</asp:button>
    										</ItemTemplate>
    PS: en fait je ne cherche pas à gagner du temps sur la génération. Je cherche juste à faire en sorte que l'utilisateur puisse lancer pleins de fiches d'un coup.
    Car la je te laisse imaginer s'il doit lancer 100 fiches le travail rébarbatif !

  17. #17
    Membre chevronné Avatar de predalpha
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    392
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 392
    Par défaut
    En code behind du dois pouvoir retrouver mondatagrid_itemcommand()
    la dedans tu dois pouvoir trouver e.commandname="update"

    Ca c'est l'action qui est effectué lorsque tu cliques sur le bouton d'une ligne de ton datagrid.

    Et bien , tu essaies d'adapter le code concernant "update" en une procédure dans ta page que tu appelleras lorsque une de tes cases sera cochée. Ca peut te demander une adaptation mais rien de bien méchant.

  18. #18
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut
    Ok je te remercie je vais regarder ça.

  19. #19
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Par défaut Toujours et encore petit souci.
    Bonjour à tous,

    Après les conseils de Calagan et de Predalpha je suis passé par une procédure pour résoudre mon problème.

    Je vais résumer un peu.

    Avant mes changements:
    -Il y avait une fonction qui permettait de générer une fiche lorsqu'on cliquait sur un bouton présent dans un datagrid. La génération ne pouvait que se faire une fiche par une fiche. La fonction de génération appellait d'autres fonctions.

    Avec mes changements.

    -J'ai créé des checkboxs dans mon datagrid et un bouton en dehors du datagrid.
    Lorsqu'on clique sur ce bouton on appelle une fonction qui va vérifier les checkbox ou check = true et lancer la fonction de génération si la condition est ok.

    Mon problème :
    -Pour une génération d'une seule fiche (ancienne méthode) pas de soucis.
    -Lorsque je veux faire une génération multiple j'ai des soucis au niveau des mes variables. Je me retrouve avec des erreurs pour mes variables déclarées en dehors de mes fonctions.
    Par exemple:
    La référence d'objet n'est pas définie à une instance d'un objet. pour la variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Protected nom_produit As String
    ou encore
    La référence d'objet n'est pas définie à une instance d'un objet. pour la variable ex lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Catch ex As Exception
     
                    Throw ex

    Je ne comprends pas pourquoi.

    Faut-il déclarer ses variables autrement quand les fonctions sont appelées plusieurs fois à la suite ?

    Merci de votre aide.

  20. #20
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    1 - Tu n'as pas besoin de sortir le bouton du datagrid.
    En le mettant dans le header de ta grid dans un template column en donnant à ce bouton un commandArgument ca marche aussi et tu peux alors récupérer le clic sur ce bouton dans l'événement itemCommand et réagir dessus de ce manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    grid_itemCommand(object,e)
    select case e.CommandArgument
    case "myButtonArgument"
    maProcédure
    end select
    2 - en ce qui concerne tes variables, si elles sont de type string je ne vois pas comment ca peux fonctionner.
    Si tu as plusieurs fiches, il faut stocker les infos de génération dans une variable de type tableau ou liste de manière à parcourir tous les enregistrements pour générer plusieurs fiches.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [C#] Parcour de Datagrid avec CheckBox
    Par aurelien.tournier dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/10/2006, 19h18
  2. Réponses: 3
    Dernier message: 22/06/2006, 23h23
  3. [C#]Datagrid avec checkboxs et pagination
    Par kenzo080 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 19/07/2005, 07h10
  4. [VB.NET] DataGrid et CheckBox
    Par nmerydem dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/06/2004, 15h52
  5. [VB.NET] Datagrid - Récupérer CheckBox cochées
    Par nmerydem dans le forum ASP.NET
    Réponses: 16
    Dernier message: 18/05/2004, 13h28

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