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] DataGrid et booléen


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] DataGrid et booléen
    Bonjour,

    des booléens sont stockés dans ma base sqlServer, je voudrais les afficher dans un dataGrid. En fonction de la valeur du booléen je voudrais afficher :

    "Cloturé" pour True
    "En cours" pour false

    Je ne vois pas comment faire. 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 peut m'aider ??

  3. #3
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    tout depend de la facon dont tu as databinder ton datagrid.
    en principe plusieurs marche a suivre.

    il te faut changer ton dataset si il est typed c'est a dire changer le type de ta colonne de bool (bit ) a string et lorssque tu fill ton dataset tu recupere la valeur on the fly et tu traduis tes valeur souhaites.

    mais il nous faudrait un peu plus d'info sur la facon dont tu gere le remplissage de ton datagrid.

    du code koi..

  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
    alors voila comment je rempli mon dataGrid :
    Pour mon code behind :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Si la page n'a pas déja été chargée
            If Not (IsPostBack) Then
                'tri en fonction de idProjet du dataGrid
                BindGrid("idProjet")
            End If
        End Sub
     
     
        ' propriété onSortCommand personnalisé du dataGrid, prend en parametre un objet
        Sub MyDataGrid_Sort(ByVal Src As Object, ByVal E As DataGridSortCommandEventArgs)
            BindGrid(E.SortExpression)
        End Sub
     
     
        'procedure qui prend en parametre un string qui represente le critère de tri, on crée une connexion à la base
        Sub BindGrid(ByVal SortField As String)
            'on recupere la variable de session salarie, c'est l'utilisateur connecté
            Dim sal2 As Salarie = CType(Session.Item("Sal"), Salarie)
            'nouvelle connexion
            Dim MyConnection As SqlConnection
            MyConnection = New SqlConnection("server=(local);database=RDTEST;user ID=sa;pwd=")
            Dim DS As DataSet
            Dim MyCommand As SqlDataAdapter
            'requete
            MyCommand = New SqlDataAdapter("SELECT idProjet, libelleProjet, dateDebutProjet, nomSociete, evolutionProjet FROM Projet, Societe WHERE idService='" & sal2.getIdService.ToString & "' AND Projet.idSocieteDemandeuse=Societe.idSociete", MyConnection)
     
            DS = New DataSet
            MyCommand.Fill(DS, "Projet")
     
            Dim Source As DataView = DS.Tables("Projet").DefaultView
            Source.Sort = SortField
            'on spécifie la source de données du dataGrid
            MyDataGrid.DataSource = Source
            'On met à jour le dataGrid
            MyDataGrid.DataBind()
     
        End Sub
    pour mon dataGrid en aspx :

    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
     
     
     
    <ASP:DATAGRID id="MyDataGrid" runat="server" SelectedIndexChanged="MySelectedIndexChanged" OnSortCommand="MyDataGrid_Sort"
    						OnItemDataBound="DataGrid1_ItemDataBound" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" AutoGenerateColumns="False" Font-Names="Verdana"
    						GridLines="Horizontal" AllowSorting="True" BorderColor="Black" BackColor="#CCCCFF" Width="591px">
    						<SelectedItemStyle ForeColor="Blue" BorderColor="#404040" BackColor="#FFC0C0"></SelectedItemStyle>
    						<ItemStyle Height="22px"></ItemStyle>
    						<HeaderStyle Font-Size="Larger" Font-Bold="True" BackColor="#AAAADD"></HeaderStyle>
    						<Columns>
    							<asp:BoundColumn DataField="idProjet" SortExpression="idProjet" HeaderText="Identifiant"></asp:BoundColumn>
    							<asp:BoundColumn DataField="libelleProjet" SortExpression="libelleProjet" HeaderText="Projet"></asp:BoundColumn>
    							<asp:BoundColumn DataField="dateDebutProjet" SortExpression="dateDebutProjet" HeaderText="Date de début"
    								DataFormatString="{0:d}"></asp:BoundColumn>
    							<asp:BoundColumn DataField="nomSociete" SortExpression="nomSociete" HeaderText="Demandeur"></asp:BoundColumn>
    							<asp:BoundColumn DataField="evolutionProjet" SortExpression="evolutionProjet" HeaderText="Evolution"></asp:BoundColumn>
    							<asp:ButtonColumn Visible="False" Text="Selectionner" HeaderText="Selection" CommandName="Select"></asp:ButtonColumn>
    						</Columns>
    					</ASP:DATAGRID>
    Voila !!

    Merci de vos conseils !!


    MichMich

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 93
    Points
    93
    Par défaut
    Dans ton aspx, pour la colonne concernée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <ASP:TEMPLATECOLUMN headertext="Evolution">
            <ITEMTEMPLATE> 
                <%# IIf(System.Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "evolutionProjet"), "Cloturé", "En cours")) %> 
            </ITEMTEMPLATE>
    </ASP:TEMPLATECOLUMN>

  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
    Merci !! Mais je ne comprend pas ca ne marche pas . J'ai bien If au lieu du IIf mais il me répond "espression attendue"


    Merci !!

  7. #7
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    euh, 2 trucs :

    deja ton tri a ne faire qu'au chargement, tu devrais le metttre dans le page_init, c'est exactement ce a quoi il sert ;-)

    parenthese fermée.

    moi je fais ce genre de truc comme methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
      Public Sub resultat_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles resultat.ItemDataBound
        Dim java As String
        If (e.Item.ItemType() <> ListItemType.Header) Then
          java = "window.location.href='client.aspx?codeClient=" & e.Item.Cells(0).Text & "'"
          e.Item.Attributes.Add("onDblClick", java)
        End If
      End Sub
    resultat est un datagrid
    en gros dans cette methode, tu peux aller intercepter les valeurs dans la vase de donnée a chaque ligne et les ecrire sur ton tableau.

    A toi de voir exactement comment, ca doit aps etre trop dur d adapter(moi, ca me definit un lien sur toute la ligne du tableau)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 93
    Points
    93
    Par défaut
    Autant pour moi y'a une ")" mal placée, c'est plutot çà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%# IIf(System.Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "evolutionProjet")), "Cloturé", "En cours") %>
    C'est bien un IIf

  9. #9
    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
    oui mais je ne voudrais changer tout mes datagrid, j'arrive à la fin de mon projet !!! Donc personne n'aurait une autre solution ??

    Je veux juste afficher "en cours" lorque le booléen est à 0
    Je veux juste afficher "cloturé" lorsque le booléen est à 1

    Merci

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 93
    Points
    93
    Par défaut
    Je comprend pas ?
    Que veux tu dire?

  11. #11
    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 parfait ca marche !!!

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    100
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 100
    Points : 93
    Points
    93
    Par défaut
    Ok nos reponses ce sont croisées

  13. #13
    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
    Es possible d'adapter ceci à un datagrid dont les colones sont crées dynamiquement ??

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

Discussions similaires

  1. [VB.NET] DataGrid et double click
    Par mic56 dans le forum Windows Forms
    Réponses: 15
    Dernier message: 01/11/2006, 04h37
  2. [VB.NET] DataGrid et CheckBox
    Par nmerydem dans le forum ASP.NET
    Réponses: 3
    Dernier message: 15/06/2004, 15h52
  3. [VB.NET] Datagrid + CheckBox : Cocher toutes les cases
    Par sirex007 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 24/05/2004, 15h33
  4. [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
  5. [VB.NET] Datagrid dans tabstrip : bug ?
    Par necro dans le forum ASP.NET
    Réponses: 13
    Dernier message: 23/02/2004, 10h23

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