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 :

[Grid EditItemTemplate] Problème de sauvegarde


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Décembre 2004
    Messages : 157
    Points : 123
    Points
    123
    Par défaut [Grid EditItemTemplate] Problème de sauvegarde
    Bonjour à tous,

    J'ai un petit problème de sauvegarde de donnée avec une grid ayant un template.

    J'ai un datagrid contenant le détails des adresses de mes clients.

    Chaque adresse à un type : facturation, livraison... (pour le reste tout ce passe bien)

    Dans mon objet adresse, mon typeAdresse doit avoir une valeur unique qui est stocké dans une table de référence (pour éviter les facturation, faturation...)

    j'ai donc en mode édition sur ma grid mon champ qui se transforme en dropdown qui elle est chargé avec la table de référence. Pour la sélection du bon item dans la list, il n'y a pas de problème. cependant, quand je valide ma mise à jour, je n'arrive pas a sauvegarder la modif dans mon objet.

    Mes composants (grid et dropdown) sont chargé avec des entityDataSources.

    Définition de ma grid
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <asp:GridView ID="grdAddress" runat="server" CellPadding="4"  OnRowUpdating="GridView_RowUpdating"
                            ForeColor="#333333" GridLines="None" 
                            AutoGenerateColumns="False" DataKeyNames="Identifiant" 
                            DataSourceID="AddressDataSource" AllowSorting="True">
                            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                            <Columns>
                                <asp:TemplateField HeaderText="Type d' adresse" SortExpression="TypeAdresse" >
                                    <ItemTemplate>
                                        <asp:Label ID="lblTypeAdresse" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.TypeAdresse") %>'></asp:Label>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                        <asp:DropDownList ID="ddlTypeAdresse" runat="server" DataSourceID="TpAdresseDataSource" DataTextField="Libelle" DataValueField="Libelle"
                                       SelectedValue='<%# DataBinder.Eval(Container, "DataItem.TypeAdresse") %>'>
                                        </asp:DropDownList>
                                    </EditItemTemplate>
                                </asp:TemplateField>
                                <asp:BoundField DataField="Numero" HeaderText="Numéro/Boite" 
                                    SortExpression="Numero" />
                                <asp:BoundField DataField="Rue" HeaderText="Rue" SortExpression="Rue" />
                                <asp:BoundField DataField="CodePostal" HeaderText="Code Postal" 
                                    SortExpression="CodePostal" />
                                <asp:BoundField DataField="Ville" HeaderText="Ville" SortExpression="Ville" />
                                <asp:BoundField DataField="Pays" HeaderText="Pays" SortExpression="Pays" />
                                <asp:CommandField ShowEditButton="True" />
                                <asp:CommandField ShowDeleteButton="True" />
                            </Columns>
                            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                            <EditRowStyle BackColor="#999999" />
                            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                        </asp:GridView>

    Dans le code behind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    protected void GridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            Control ctl = ((GridView)sender).Rows[e.RowIndex].FindControl("ddlTypeAdresse");
            string test = ((DropDownList)ctl).SelectedValue;
            object obj = DataBinder.GetDataItem(((GridView)sender).NamingContainer);
     
            ((Adresse)obj).TypeAdresse = test;
     
        }
    mais ici, mon dataitem obj est toujours null. quelqu'un à une idée d'où vient le problème?

    Si vous avez une autre façon de faire, je suis preneur vu que j'apprends le webform.

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Points : 1 443
    Points
    1 443
    Par défaut
    Remplace dans ta section "EditItem"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SelectedValue='<%# DataBinder.Eval(Container, "DataItem.TypeAdresse")  %>
    '

    par ça


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SelectedValue='<%# Bind("TypeAdresse")  %>'
    et regarde ce que ça donne....

    poste également les messages d'erreur que tu as...
    il vaut mieux prendre son pied que de se prendre la tête!!

    http://bossun.noxblog.com

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    157
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Décembre 2004
    Messages : 157
    Points : 123
    Points
    123
    Par défaut
    Parfait merci ça marche.

    pour l'erreur c'était un "objet not set..."

    vu que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object obj = DataBinder.GetDataItem(((GridView)sender).NamingContainer);
    ramenait un null.

    Mais ta solution du bind résous le problème vu qu'il n'y a plus à gérer le binding manuellement.

    Merci beaucoup.

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

Discussions similaires

  1. [FLASH MX2004] Problème de sauvegarde.
    Par mooky dans le forum Flash
    Réponses: 1
    Dernier message: 16/01/2006, 20h06
  2. [Hibernate] problème de sauvegarde
    Par ultimax dans le forum Hibernate
    Réponses: 2
    Dernier message: 22/12/2005, 14h33
  3. Problème de sauvegarde de bases de données
    Par Gwipi dans le forum Administration
    Réponses: 2
    Dernier message: 09/09/2005, 08h30
  4. [PDE] Problème pour sauvegarder une modif dans un éditeur
    Par simsky dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 11/08/2005, 15h05
  5. Problème de sauvegarde des locales
    Par PANAYE Nicolas dans le forum XMLRAD
    Réponses: 1
    Dernier message: 04/08/2005, 09h51

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