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 :

LE DataField d'un ItemTemplate dans un detailView


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut LE DataField d'un ItemTemplate dans un detailView
    Bonjour tout le monde.

    J'ai un petit souci pour placer le DataField dans un ItemTemplate.
    J'ai mis en palce une detailView comme suis :
    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
     
    <asp:DetailsView ID="dvMailS" runat="server" DataSourceID="sdsDetailMail" DataKeyNames="IdMail">
                <Fields>
                    <asp:BoundField DataField="NomMail" HeaderText="Nom du mail" SortExpression="NomMail" />
                    <asp:BoundField DataField="LibEmetteur" HeaderText="Libellé de l'émetteur" SortExpression="LibEmetteur" />
                    <asp:BoundField DataField="MailEmetteur" HeaderText="Mail de l'émetteur" SortExpression="MailEmetteur" />
                    <asp:BoundField DataField="SujetMail" HeaderText="Sujet du mail" SortExpression="SujetMail" />
                    <asp:TemplateField ShowHeader="false">
                        <ItemTemplate>
                            <asp:Label ID="lblHeaderTemplate" runat="server" Text="Texte du mail"></asp:Label>
                            <HTMLEditor:Editor ID="txtEditorTexteMail" runat="server" Content='<%# Bind("CorpsMail") %>' ActiveMode="Preview" />
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:Label ID="lblHeaderTemplate" runat="server" Text="Texte du mail"></asp:Label>
                            <HTMLEditor:Editor ID="txtEditorTexteMail" runat="server" Content='<%# Bind("CorpsMail") %>' />
                        </EditItemTemplate>
                        <InsertItemTemplate>
                            <asp:Label ID="lblHeaderTemplate" runat="server" Text="Texte du mail"></asp:Label>
                            <HTMLEditor:Editor ID="txtEditorTexteMail" runat="server" Content='<%# Bind("CorpsMail") %>' />
                        </InsertItemTemplate>
                    </asp:TemplateField>
                    <asp:BoundField DataField="UserId" HeaderText="Coach" SortExpression="UserId" ControlStyle-CssClass="invi" HeaderStyle-CssClass="invi" ItemStyle-CssClass="invi" />
                </Fields>
                </asp:DetailsView>
    Comme vous le voyez, j'ai un ItemTemplate parce que je voulais utiliser le composant RichText pour saisir les données. Je m'aperçois qu'à l'enregistrement, il ne me prend aucun modification.

    En regardant bien, je vois qu'il n'a pas de lien vers un DataField, du coup je comprends mieux pourquoi il n'enregistre pas les modifications. L'ennui c'est que je n'ai pas trouvé le moyen de lui dire que ce champ est lié à un champ de ma Table.

    Pouvez vous m'aider?

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Il te faut lire "manuellement" les valeurs saisies pour qu'elles soient enregistrées en base lorsque tu utilises un EditItemTemplate. Pour ce faire tu peux utiliser l'event OnRowUpdating.

    En espérant t'avoir aidé.

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide.

    J'ai bien lu ton lien. Bien que ce soit pour un GridView et pas un DetailView, j'ai essayé de l'adapter, mais j'ai pas compris comment faire le lien.

    Dans l'évènement UpdatingItem que j'ai tenté de récupérer le contenu de composant RichText, ça j'ai réussi, avec du mal, mais c'est bon. Par contre, aprés, je sais pas quoi en faire. Je n'arrive pas à l'envoyer dans le paramettre concerné dans le SqlDataSource.

  4. #4
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    C'est assez semblable entre une GridView et un DetailView, mais je n'avais en effet pas fait attention au Contrôle que tu utilisais.

    Donc dans ton EventHandler pour le ItemUpdating, le second paramètre est du type DetailsViewUpdateEventArgs. Celui-ci a une propriété NewValue ( et OldValue au passage), dans lequel tu peux indiquer toi même les valeurs à passer à ta DataSource. Exemple ici.

    En espérant t'avoir aidé.

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci pour ton aide, ça marche super bien et même mieux que bien.

    Ton exemple a aussi réglé un souci de j'allais posté sur le Mode du DetailView qui se mettait pas comme je voulais à chaque fois.

    Bref, c'est du top de top.

    Par contre, ce qui me chcagrine avec .NET c'est que, dés que tu utilise un truc un poil personnalisé, il faut reprendre toute la base du contrôle utilisé.
    Là, c'es un malheureu contrôle en RichText à la place d'un TextBox et faut tout leui réexpliqué pour metre les données dans les bons champs.

    Il y a quelque mois j'ai été confronté au même genre de chose avec le contrôle de login. J'ai juste voulu personnaliser le positionnement des champs de saisie et j'ai été obligé de tout reprendre pour gérer le procédure de connexion et de contrôle d'accès.

    Bref, .NET c'est super bien tant que tu fais exactement comme c'est prévu, si tu sors de clous, même juste sur le côté du chemin, pof, gros boulot.

    En tout cas merci pour ton aide, je vais pouvoir fignioler ma présentation maintenant.

    Bonne journée à toi.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/08/2010, 13h08
  2. Itemtemplate dans le codebehind
    Par Mvu dans le forum ASP.NET
    Réponses: 1
    Dernier message: 28/06/2008, 21h26
  3. Réponses: 2
    Dernier message: 16/10/2007, 10h23
  4. Stopper l'enregistrement dans un detailView
    Par zooffy dans le forum ASP.NET
    Réponses: 1
    Dernier message: 20/08/2007, 17h16
  5. Exception dans un detailview
    Par saphir54321 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 05/04/2007, 14h42

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