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 :

[C#] Tutoriel DataGrid (WebMatrix)


Sujet :

ASP.NET

Vue hybride

bendj [C#] Tutoriel DataGrid... 21/07/2005, 10h24
bendj C'est bon, vous pouvez me... 21/07/2005, 10h39
pmithrandir alors : deja, y a un tuto... 21/07/2005, 11h16
bendj Je cherche depuis ce matin,... 21/07/2005, 14h38
pmithrandir est ce que tu as une ligne de... 21/07/2005, 14h49
bendj J'ai : protected... 21/07/2005, 14h54
pmithrandir c lacquelle la ligne 121? 21/07/2005, 15h00
bendj La ligne 121 de quel fichier... 21/07/2005, 15h05
pmithrandir celle la : 21/07/2005, 15h08
bendj :?: :?: :?: 21/07/2005, 15h10
pmithrandir en gros, dans ton item... 21/07/2005, 15h14
bendj En fait, l'erreur se produit... 21/07/2005, 15h14
pmithrandir si tu remplace ton... 21/07/2005, 15h23
bendj Tu confonds pas le C# et le... 21/07/2005, 15h25
pmithrandir bah je pense pas, t a aussi... 21/07/2005, 15h28
bendj Tu as raison. J'ai trouvé un... 21/07/2005, 15h37
pmithrandir je t avoue que je ne sais... 21/07/2005, 15h41
bendj ItemDataBound, c'ext un... 21/07/2005, 16h05
bendj J'ai mis ça, et ce qui suit... 22/07/2005, 09h54
Nesmontou On dirait qu'il ne trouve pas... 22/07/2005, 10h02
bendj Ma page ASPX : ... 22/07/2005, 10h13
Nesmontou et l'erreur, il te la renvoie... 22/07/2005, 10h23
bendj Il me la fait après ... 22/07/2005, 10h30
pmithrandir findcontrol n'est pas une... 22/07/2005, 10h42
bendj J'ai essayé aussi ... 22/07/2005, 10h44
pmithrandir e.item(numeroDeLigne).findCont... 22/07/2005, 10h54
bendj Quand je fais : ... 22/07/2005, 10h54
Nesmontou Bon, on dirait qu'il ne... 22/07/2005, 10h55
bendj Response.Write(e.Item.Cont... 22/07/2005, 11h12
Nesmontou Peut-être qu'il faut... 22/07/2005, 11h15
Nesmontou :idea: Je viens de voir un... 22/07/2005, 11h17
bendj J'ai déjà essayé, et j'ai... 22/07/2005, 11h17
Nesmontou On s'est croisé, regarde le... 22/07/2005, 11h18
bendj OK !! Il y a du nouveau...... 22/07/2005, 11h41
pmithrandir If... 22/07/2005, 11h44
Nesmontou Quand tu bind ton datagrid,... 22/07/2005, 11h47
bendj :idea: :idea: :idea: ... 22/07/2005, 11h50
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    Ma page 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
     
                <asp:DataGrid id="tabCells" runat="server" ShowFooter="false" onItemDataBound="Product_Update" AutoGenerateColumns="false">
                    <Columns>
                        <asp:TemplateColumn HeaderText="CID">
                            <ItemTemplate>
                                <asp:Label id="dgLabCID" runat="server" text='<%# DataBinder.Eval(Container.DataItem,  "cid") %>' />
                            </ItemTemplate>
                        </asp:TemplateColumn>
                        <asp:TemplateColumn HeaderText="StandardIndicator">
                            <ItemTemplate>
                                <asp:DropDownList id="dgDDLSI" runat="server" />
                            </ItemTemplate>
                        </asp:TemplateColumn>
                    </Columns>
                </asp:DataGrid>

  2. #2
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    et l'erreur, il te la renvoie pour quelle ligne de code ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    Il me la fait après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DropDownList ddl=(DropDownList)e.Item.Cells[1].FindControl("dgDDLSI");
    Dès que j'essaye d'accéder à une propriété de la DropDownList. J'ai vu qu'il y avait des posts qui concernaient le même problème, et j'ai recopié rigoureusement la même chose, mais ça ne marche pas...

  4. #4
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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 419
    Par défaut
    findcontrol n'est pas une fonction qui va aprés e.item?

    pas besoin de cellule normalement... Au mieu, tu declarerais la ligne, mais pas la colonne.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    J'ai essayé aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DropDownList ddl=(DropDownList)e.Item.FindControl("dgDDLSI");
    Mais ça ne marche pas non plus.

  6. #6
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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 419
    Par défaut
    e.item(numeroDeLigne).findControl

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    Quand je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.Write((DropDownList)e.Item.FindControl("dgDDLSI"));
    il me renvoit :

    System.Web.UI.WebControls.DropDownListSystem.Web.UI.WebControls.DropDownListSystem.Web.UI.WebControls.DropDownListSystem.Web.UI.WebControls.DropDownList
    Est-ce normal ?

  8. #8
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Bon, on dirait qu'il ne trouve pas la ddl. Tu peux faire des tests pour voir si elle est bien là ; dans ta fonction Product_Update :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Dim ctrl As Control
            Response.Write(e.item.controls(1).getType.ToString & "<br>")
            For Each ctrl In e.item.controls(1).controls
                Response.Write("-> " & ctrl.GetType.ToString & " - " & ctrl.ID & "<br>")
            Next
    C'est du VB.NET, désolé
    Comme ça tu devrais avoir la liste des éléments (type + ID) et tu vois si ta ddl est bien là

    Tiens, j'y pense, tu es sûr que c'est Cells[1] et pas Controls[1] :

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                Response.Write(e.Item.Controls[1].GetType().ToString() + "<br>");
                foreach (Control ctrl in e.Item.Controls[1].Controls){
                    Response.Write("-> " + ctrl.GetType().ToString() + " - " + ctrl.ID + "<br>");
                    }
    Résultat :
    System.Web.UI.WebControls.TableCell
    System.Web.UI.WebControls.TableCell
    -> System.Web.UI.LiteralControl -
    -> System.Web.UI.WebControls.DropDownList - dgDDLSI
    -> System.Web.UI.LiteralControl -
    System.Web.UI.WebControls.TableCell
    -> System.Web.UI.LiteralControl -
    -> System.Web.UI.WebControls.DropDownList - dgDDLSI
    -> System.Web.UI.LiteralControl -
    System.Web.UI.WebControls.TableCell
    -> System.Web.UI.LiteralControl -
    -> System.Web.UI.WebControls.DropDownList - dgDDLSI
    -> System.Web.UI.LiteralControl -
    System.Web.UI.WebControls.TableCell
    -> System.Web.UI.LiteralControl -
    -> System.Web.UI.WebControls.DropDownList - dgDDLSI
    -> System.Web.UI.LiteralControl -
    System.Web.UI.WebControls.TableCell

  10. #10
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Peut-être qu'il faut remplacer Cells par Controls :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DropDownList ddl=(DropDownList)e.Item.Controls[1].FindControl("dgDDLSI");

  11. #11
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Je viens de voir un truc : tu ne testes pas si le item est un item. Il va chercher ta ddl dans le header et le footer
    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
            protected void Product_Update(object sender, DataGridItemEventArgs e) 
          { 
                if e.Item.ItemType = ListItemType.Item {
                WebRAM toto = new WebRAM(); 
                ArrayList myAL = new ArrayList(); 
     
                DropDownList ddl=(DropDownList)e.Item.Cells[1].FindControl("dgDDLSI"); 
     
                myAL=toto.GetStandardIndicator(); 
                ddl.DataSource=myAL[0]; 
                ddl.DataTextField=myAL[1].ToString(); 
                ddl.DataBind(); 
     
                ddl.SelectedValue = e.Item.Cells[1].ToString(); 
                }
          }
    Vérifie la syntaxe, on ne sait jamais

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    J'ai déjà essayé, et j'ai toujours la même erreur...


  13. #13
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    On s'est croisé, regarde le code juste au dessus

    Quand tu es dans le itemdatabound, il faut tester pour savoir où tu es : item, alternatingitem, footer, header

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut
    OK !!

    Il y a du nouveau... Effectivement, ça marche mieux, mais ça me remplit qu'une ligne sur deux !!

    A quoi sert la condition que tu m'as fait ajouté ?

  15. #15
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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 419
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (e.Item.ItemType() = ListItemType.AlternatingItem) Or (e.Item.ItemType() = ListItemType.Item) Then

    voila ma condition ;-)

    en gros j'ai pas compris, mai ca gere une ligne sur deux..

  16. #16
    Membre Expert
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Par défaut
    Quand tu bind ton datagrid, il y a passage en revue de toutes les lignes de ton datagrid : header, item, alternatingitem et footer. A chaque ligne il y a appel du itemdatabound, mais il faut indiquer dans quel type de ligne tu te situes, d'où le test que je t'ai indiqué. Comme ça tu peux faire diverses actions selon que tu es dans un type de ligne particulier (un des 4 cités plus haut)

    Pour le remplissage d'une ligne sur 2, tu as surement mis des alternatingitem (en définissant AlternatingItemStyle en haut du datagrid). Dans ton cas, la condition devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if e.Item.ItemType = ListItemType.Item or e.Item.ItemType = ListItemType.AlternatingItem {...
    Voilà, j'espère que ça va marcher et que j'ai été clair dans mes explications

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 59
    Par défaut


    Tout de suite, je comprends mieux !!

    MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI

    J'espère que je n'aurais plus besoin de revenir sur ce post...

    J'attends un peu avant de mettre "résolu".

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. ListView, datagrid, tutoriels
    Par HENRYC dans le forum C#
    Réponses: 2
    Dernier message: 27/04/2007, 11h08
  2. Outils, cours et NOUVEAUX tutoriels pour Borland C++Builder
    Par hiko-seijuro dans le forum C++Builder
    Réponses: 10
    Dernier message: 12/03/2006, 22h33

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