Gridview extraction données d'une colonne

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

7 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 à 21:19
Salut,

Il faut travailler sur l'evenemet
_RowDataBound

Exemple http://msdn.microsoft.com/en-us/library/ms972833(loband).aspx
Tu peux utiliser aussi un e.FindControl("idControl") si tu utilises des templates.
Et pour le reste inspire toi de l'exemple
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
26 mai 2009 à 11:54
J'ai essayé mais je ne trouve rien de concluant. Pouvez-vous me donner un exemple inspiré de mon code pleaz?
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
26 mai 2009 à 12:08
j'ai fait comme le code suivant,pouvez-vous m'aider? Je veux utiliser le substring de telle sorte que seul ce qui est après le @ soit visible.

protected void GridView1_RowDataBound1(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType = = DataControlRowType.DataRow)
        {
            e.Row.Cells[1].Text = " " + e.Row.Cells[1].Text + " ";
                    
             e.Row.Cells[1].Text = e.Row.Cells[4].Text.Substring(...);
          
        }           
             e.Row.Cells[1].Attributes.Add("Domaine", e.Row.DataItem("Email"));
         
    }
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 mai 2009 à 21:08
Donnes le code de ta gridview dans la page aspx

Car à l'aveugle c'est pas évident

e.Row.Cells[1].Text = " " + e.Row.Cells[1].Text + " ";

e.Row.Cells[1].Text = e.Row.Cells[4].Text.Substring(...);
ecrivent dans la meme cellule

e.Row.Cells[1].Attributes --> attribut HTML je ne vois pas l'interet??
regardes du coté de (e.row.findcontrol("label1") as Label).text = e.row.findcontrol("label1") as Label).Text.Split("@")[1];

En considerant que label1 est binder sur l'email
et que tu veux ecrire le domaine dans la meme celulle
Et que label1 soit dans itemtemplate

Bon dev

Reponse non testée (j'ai pas de visual studio sous la main)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
26 mai 2009 à 21:29
Dans la page aspx j'ai:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Info.ascx.cs" Inherits="DesktopModules_monmodule_Info" %>

    <Columns>
       
       
       

    </Columns>
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
27 mai 2009 à 11:38
Bonjour, help pleaz. Qu'est ce que représente le Label que m'a présenté nhervagault par rapport à mon code?
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
28 mai 2009 à 20:23
La suite sur http://www.csharpfr.com/forum/sujet-SUBSTRING_1318542.aspx

@ddove53, il faut prendre le temps de chercher, pour éviter de remplir les forums
un forum c'est différent d'un chat ou d'une messagerie instantanée.
0
Rejoignez-nous