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 :

Faire une GridView personnalisée


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de Orphey
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 58
    Par défaut Faire une GridView personnalisée
    Bonjour, voila j'ai une gridview remplie avec une collection d'objets, ca marche tres bien mais je voudrais ajouter deux colonnes avec des infos qui viennent d'une autre collection..
    Est-ce possible? comment faire? utiliser le onrowdatabound est-ce une bonne idée?

    Merci de votre réponse..

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Oui, tu dois ajouter tes 2 colonnes dans le template de ton grid view et tu remplis dans le onrowdatabound ou tu bindes directement ta colonne.
    Ca dépend de ce que tu souhaites faire

  3. #3
    Membre actif Avatar de Orphey
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 58
    Par défaut
    En fait j'ai
    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
     
    <asp:GridView CssClass="Gridview" ID="GrdDEMANDES" AutoGenerateColumns="false" OnSorting="GrdDEMANDES_Onsorting" 
                            AllowPaging="false" DataKeyNames="ID_DEM" EnableViewState="true" 
                            AllowSorting="true" AlternatingRowStyle-CssClass="alt" OnRowDataBound="grvRowDataBound" runat="server" >
                             <columns>
                                <asp:boundField DataField="ID_DEM" Visible="false" />    
                                <asp:boundField DataField="NUM_DOSSIER_DEM" Visible="true" SortExpression="NUM_DOSSIER_DEM"  HeaderStyle-HorizontalAlign="center" HeaderStyle-VerticalAlign="bottom" ItemStyle-HorizontalAlign="left" HeaderText="Numéro de dossier" /> 
                                <asp:TemplateField Visible="true" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" SortExpression="Département" HeaderText="Département" >
     
                                </asp:TemplateField> 
                                <asp:TemplateField Visible="true" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" SortExpression="Service" HeaderText="Service">
     
                                </asp:TemplateField> 
     
                                <asp:boundField DataField="INTITULE_DEM" Visible="true" SortExpression="INTITULE_DEM"  HeaderStyle-HorizontalAlign="center" HeaderStyle-VerticalAlign="bottom" ItemStyle-HorizontalAlign="left" HeaderText="Intitulé"/>    
                                <asp:boundField DataField="ID_ETAT" Visible="true" SortExpression="ID_ETAT"  HeaderStyle-HorizontalAlign="center" HeaderStyle-VerticalAlign="bottom" ItemStyle-HorizontalAlign="left" HeaderText="Etat de la demande" />                                                             
                            </columns> 
                            </asp:GridView>
    Dans les templates fields j'aimerais ajouter des champs ..
    Comment faire? si je rajoute dans le 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
            public void grvRowDataBound(object sender, GridViewRowEventArgs e)
            {
                try
                {
                    if (e.Row.RowType == DataControlRowType.DataRow)
                    {
                        //----- formats
                        e.Row.Cells[2].Text = //A implementer sur base de ID_DEM
                        e.Row.Cells[3].Text =//A implementer sur base de ID_DEM
     
                    }
                }
                catch (Exception ex)
                {
                    throw;
                }           
            }

    Comment puis-je la dedans recuperer ID_DEM qui est un champ caché? (premiere colonne?)
    C'est sur base de cet ID que je vais rechercher les infos qu'il me faut..

    Merci de ton aide!

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu peux récupérer l'instance de l'objet sur lequel est bindé ta row

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2010
    Messages : 131
    Par défaut
    Je te mets un exemple d'une colonne template que j'ai utiliser en y mettant un bouton, pour genre désactiver l'offre de la ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
                <asp:TemplateField ShowHeader="False" >
                    <ItemTemplate>
                        <asp:Button ID="Button1" runat="server" CausesValidation="false" CommandName="Accepte" CommandArgument='<%# bind("pk") %>'
                            Text="Accepté Mission" Width="100px"/>
                    </ItemTemplate>
                </asp:TemplateField>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
            If (e.CommandName = "Refuse") Then
                RefusM(e.CommandArgument.ToString)
            ElseIf (e.CommandName = "Accepte") Then
                AcceptM(e.CommandArgument.ToString)
            End If
            GridView1.DataBind()
            Checkdisable()
            CheckStatut()
        End Sub
    Je penses que avec cet exemple tu comprendras ^^ mais c'est peut etre pas exactement la même chose que tu veux faire mais comme ça cela te fera chercher

  6. #6
    Membre actif Avatar de Orphey
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 58
    Par défaut
    Chouette merci j'ai trouvé

    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
            public void grvRowDataBound(object sender,GridViewRowEventArgs e)
            {
                try
                {
     
                        //----- formats
                    if (e.Row.DataItem != null)
                    {
                        e.Row.Cells[2].Text = ((MYCLASS) e.Row.DataItem).Id_ent_dep_dem.ToString();
                    }
     
                }
                catch (Exception ex)
                {
                    throw;
                }           
            }
    Avec ca je suis parti merci beaucoup a vous deux..

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/08/2011, 14h06
  2. comment faire une ihm personnalisable
    Par djedjeyop dans le forum Général Python
    Réponses: 7
    Dernier message: 31/01/2010, 19h35
  3. Faire une Datagrid personnalisée
    Par ploukinet dans le forum VB.NET
    Réponses: 3
    Dernier message: 09/07/2007, 14h51
  4. Réponses: 5
    Dernier message: 15/03/2007, 10h08
  5. Réponses: 2
    Dernier message: 26/12/2006, 22h40

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