Gridview [Résolu]

Signaler
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010
-
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010
-
        Bonjour, j'utilise DotnetNuke et je veux afficher par exemple les champs (Email, FirstName etLastName de ma base). Par contre avec le code que j'ai fait ci-dessous, il m'affiche tous les champs. Comment faire pour resoudre ce probléme. Mon code est-il juste.
Merci d'avance.

   GridView GridView1 = new GridView();
            BoundField bfield = new BoundField();
            foreach (UserInfo objUser in cUser)
            {
            bfield.DataField = objUser.Email;
            bfield.DataField = objUser.FirstName;
            bfield.DataField = objUser.LastName;
            }
        
           // cUser.Add(bfield);
            GridView1.Columns.Add(bfield);
            GridView1.DataSource = cUser;
            GridView1.DataBind();

2 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut,

C'est peut etre la proprieté autogeneratecolums qui est à TRUE.

Sinon ce code me semble pas optimal.

Je verrai plutot

gridview1.datasource = cUser;
gridview1.databind();

Apres pour le titre des colonnes a toi de la modifiée
si tu veux avec des zone de zone utilise les itemtemplates
ou les autres types de boundfield

Bon courage
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Merci bien, j'ai réussi à faire marcher en faisant comme le code en dessous. Mais j'ai un autre soucis car j'ai réussi à afficher le nom, prenom et mail mais je voudrai aussi afficher le nom de domaine (par exemple recupérer yahoo.fr de toto@yahoo.fr).
Voici mon code:
Dans mon .aspx.cs il ya:
UserController objUserController = new UserController();
            System.Collections.ArrayList cUser = objUserController.get.GetUsers(PortalId, false, false);
          
            BoundField bfield = new BoundField();
            UserInfo objUser = new UserInfo();
            GridView1.Columns.Clear();
            bfield.DataField="FirstName";
            bfield.HeaderText = "FirstName";
            DataControlField col = bfield;
            GridView1.Columns.Add(col);
         
            bfield = new BoundField();
            bfield.DataField = "LastName";
            bfield.HeaderText = "LastName";
            col = bfield;
            GridView1.Columns.Add(col);

            bfield = new BoundField();
            bfield.DataField = "Email";
            bfield.HeaderText = "Email";
            col = bfield;
            GridView1.Columns.Add(col);

            GridView1.DataSource = cUser;
            GridView1.DataBind(); 

Et dans mon .aspx il ya :
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Info.ascx.cs" Inherits="DesktopModules_monmodule_Info" %>

    <Columns>
       
       
       
    </Columns>

Pour info je sais le faire en sql mais le but c'est de le recupérer directement de la table Email sans utiliser une requete (en sql ce serait :  Select substring (Email, charindex('@', Email) + 1, 4000)).
Merci de votre aide.