Gridview

Résolu
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010 - 25 mai 2009 à 16:17
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010 - 25 mai 2009 à 20:02
        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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
25 mai 2009 à 19:52
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
3
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
25 mai 2009 à 20:02
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.
0
Rejoignez-nous