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 :

objectdatasource oninserted - Label.Text NOK


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Points : 18
    Points
    18
    Par défaut objectdatasource oninserted - Label.Text NOK
    Bonjour,

    je souhaite gérer les erreurs retour d'un objectdatasource avec un simple label.

    Dans ma page j'ai un label, un gridview et un objectdatasource.
    Sur le onupdated ou oninserted ou ondeleted je souhaite afficher un message dans le label.
    La mise à jour du label ne fonctionne pas.
    Je ne comprends pas mon problème.

    Pouvez-vous m'aider ?
    Merci

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    <form id="form1" runat="server">
            <div>
                <!--LABEL MESSAGE RETOUR -->
                <asp:Label runat="server" ID="labMessages" Text="ouou"></asp:Label>
     
                <h2>Gestion des clients et agents</h2>
                <dx:ASPxGridView ID="gvClient" ClientInstanceName="gvProfil" runat="server"
                    DataSourceID="dsClient"
                    KeyFieldName="IDClient"
                    Width="100%"
                    AutoGenerateColumns="False"
                   >
                    <Columns>
                        <dx:GridViewDataColumn FieldName="IDClient" Visible="false" />
                        <dx:GridViewDataTextColumn FieldName="SIRET" Caption="N° SIRET">
                            <PropertiesTextEdit MaxLength="50">
                                <ValidationSettings ErrorText="Champ obligatoire"
                                    RequiredField-IsRequired="true" ErrorDisplayMode="ImageWithTooltip" Display="Dynamic">
                                </ValidationSettings>
                            </PropertiesTextEdit>
                        </dx:GridViewDataTextColumn>
                        <dx:GridViewDataTextColumn FieldName="RaisonSociale" Caption="Raison sociale">
                            <PropertiesTextEdit MaxLength="250">
                                <ValidationSettings ErrorText="Champ obligatoire"
                                    RequiredField-IsRequired="true" ErrorDisplayMode="ImageWithTooltip" Display="Dynamic">
                                </ValidationSettings>
                            </PropertiesTextEdit>
                        </dx:GridViewDataTextColumn>
                        <dx:GridViewDataTextColumn FieldName="Adresse1" Visible="false" EditFormSettings-Visible="true" Caption="Adresse" PropertiesTextEdit-MaxLength="100"></dx:GridViewDataTextColumn>
                        <dx:GridViewDataTextColumn FieldName="Adresse2" Visible="false" EditFormSettings-Visible="true" Caption=" " PropertiesTextEdit-MaxLength="100"></dx:GridViewDataTextColumn>
                        <dx:GridViewDataTextColumn FieldName="CodePostal" Caption="Code postal" PropertiesTextEdit-MaxLength="50"></dx:GridViewDataTextColumn>
                        <dx:GridViewDataTextColumn FieldName="Ville" Caption="Ville" PropertiesTextEdit-MaxLength="150"></dx:GridViewDataTextColumn>
                        <dx:GridViewDataTextColumn FieldName="Pays" Caption="Pays" PropertiesTextEdit-MaxLength="150"></dx:GridViewDataTextColumn>
     
                        <dx:GridViewDataComboBoxColumn FieldName="IDAgence" Caption="Agence de rattachement">
                            <EditFormSettings Visible="True" />
                            <PropertiesComboBox DataSourceID="dsAgence" TextField="Libelle" ValueField="IDAgence">
                                <ValidationSettings ErrorText="Champ obligatoire"
                                    RequiredField-IsRequired="true" ErrorDisplayMode="ImageWithTooltip" Display="Dynamic">
                                </ValidationSettings>
                            </PropertiesComboBox>
                        </dx:GridViewDataComboBoxColumn>
                        <dx:GridViewCommandColumn ShowNewButtonInHeader="true" ShowEditButton="true" ShowDeleteButton="true" Caption=" " Width="80">
                        </dx:GridViewCommandColumn>
                    </Columns>
     
                </dx:ASPxGridView>
     
                <asp:ObjectDataSource
                    ID="dsAgence"
                    runat="server"
                    SelectMethod="GetAll"
                    TypeName="Project_BIZ.CAgence">
                    <SelectParameters>
                        <asp:Parameter Name="bWithNull" Type="Boolean" DefaultValue="false" />
                    </SelectParameters>
                </asp:ObjectDataSource>
     
                <asp:ObjectDataSource
                    ID="dsClient"
                    runat="server"
                    SelectMethod="GetAll"
                    InsertMethod="Insert"
                    DeleteMethod="Delete"
                    UpdateMethod="Update"
                    TypeName="Project_BIZ.CClient"
                    OnInserted="dsClient_Inserted"
                   >
                    <InsertParameters>
                        <asp:Parameter Name="IDAgence" Type="Int32" />
                        <asp:Parameter Name="RaisonSociale" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="SIRET" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="Adresse1" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="Adresse2" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="CodePostal" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="Ville" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="Pays" Type="String" ConvertEmptyStringToNull="false" />
                    </InsertParameters>
                    <UpdateParameters>
                        <asp:Parameter Name="IDClient" Type="Int32" />
                        <asp:Parameter Name="IDAgence" Type="Int32" />
                        <asp:Parameter Name="RaisonSociale" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="SIRET" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="Adresse1" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="Adresse2" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="CodePostal" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="Ville" Type="String" ConvertEmptyStringToNull="false" />
                        <asp:Parameter Name="Pays" Type="String" ConvertEmptyStringToNull="false" />
                    </UpdateParameters>
                    <DeleteParameters>
                        <asp:Parameter Name="IDClient" Type="Int32" />
                    </DeleteParameters>
                </asp:ObjectDataSource>
     
            </div>
        </form>
    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
    C#
    protected void dsClient_Inserted(object sender, ObjectDataSourceStatusEventArgs e)
            {
                labMessages.Text = "Ce client existe déjà (N° SIRET). Impossible de le créer.";
                labMessages.CssClass = "alert alert-warning";
                Int32 iRet = (Int32)e.ReturnValue;
                if (iRet == (Int32)CClient.eErreur.ERROR_DOUBLON)
                {
                    //((ASPxGridView)gvClient).JSProperties["cpInserted"] = "Ce client existe déjà (N° SIRET). Impossible de le créer.";
                    labMessages.Text = "Ce client existe déjà (N° SIRET). Impossible de le créer.";
                    labMessages.CssClass = "alert alert-warning";
                }
                else if (iRet == (Int32)CClient.eErreur.ERROR_OTHER)
                {
                    ...
                }
            }

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Ca fait longtemps mais :
    - l'événement Inserted se déclenche après un postback (?) (d'où le fait que ton label ne soit pas mis à jour)
    - tu as essayé de faire ton traitement sur le OnInserting plutôt ? (et j'ai des doutes sur le fait que le Inserting déclenche un postback ^^)


    Pour info, vu que ton traitement sert à vérifier les données par rapport à l'existant, il faut vraiment mettre ce traitement sur Inserting (à l'insertion) et non sur le Inserted (après l'insertion) !
    Et comme ça tu peux gérer l'annulation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            protected void ObjectDataSource1_Inserting(object sender, ObjectDataSourceMethodEventArgs e)
            {
                e.Cancel = true;
            }
    En espérant avoir pu t'aider
    "Hope for the best, but prepare for the worst."

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Points : 1 077
    Points
    1 077
    Par défaut
    Logiquement le postback est déclenché via les boutons du gridview se qui provoque l'insert donc normalement ca devrait marcher. N'as tu pas un autre évènement qui efface/réinitialise la valeur du label et dont l'évènement se produirait après les évènements de ton objectdatasource...

Discussions similaires

  1. label.texte ne fonctionne pas
    Par Couz02 dans le forum C#
    Réponses: 16
    Dernier message: 05/04/2009, 21h49
  2. Traduction des labels textes de JFileChooser
    Par Razgriz dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 17/09/2008, 17h55
  3. label.text et javascript
    Par lesafir dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/08/2007, 10h51
  4. [FLASH 8] Problème label.text
    Par nounetmasque dans le forum Flash
    Réponses: 3
    Dernier message: 03/09/2006, 17h58
  5. [C#] Concatenation dans label Text
    Par Oberown dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/01/2005, 10h12

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