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 :

Erreur après modification du contenu d'un combobox


Sujet :

ASP.NET

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut Erreur après modification du contenu d'un combobox
    Bonjour,

    Je voudrais dans un userControl avoir 2 combobox : la première contient des familles de regroupement, la seconde le détail de ces regroupements.
    Je voudrais que quand on clique sur la première combobox la seconde réagisse et je voudrais surtout que cela se passe en javascript.

    Sur ce point je n'ai pas de difficulté.
    Par contre, au moment de la validation de la page j'ai une erreur de violation.
    En cherchant sur les forums j'ai vu qu'il fallait déclarer une commande pour autoriser le code à fonctionner même si certains contenus ont été modifiés. Mon problème est que je ne vois pas comment le faire surtout dans un UserControl.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                         <asp:DropDownList ID="cb_Famille" 
                                        style="width:150px;" 
                                        runat="server" 
                                        OnClick="FunctionJavaScript()">
                                    </asp:DropDownList>
                                    <asp:DropDownList ID="cb_Famille" 
                                        style="width:150px;" 
                                        runat="server" >
                                    </asp:DropDownList>

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    pourrais-tu nous donner l'exception exacte, avec les différentes précisions fournies ?
    Une erreur visible toutefois dans le code que tu nous files : l'attribut OnClick c'est pour la fonction côté serveur, il s'attend pas à du JS ici.
    Pour une action côté client (en JS donc) il faut utiliser l'attribut OnClientClick.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Voilà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Argument de publication ou de rappel non valide. La validation d'événement est activée via <pages enableEventValidation="true"/> dans la configuration ou via <%@ Page EnableEventValidation="true" %> dans une page. Pour des raisons de sécurité, cette fonctionnalité vérifie si les arguments des événements de publication ou de rappel proviennent du contrôle serveur qui les a rendus à l'origine. Si les données sont valides et attendues, utilisez la méthode ClientScriptManager.RegisterForEventValidation afin d'inscrire les données de publication ou de rappel pour la validation.
    Il y a pas mal de sujets sur le net traitant ce point, je comprends le principe mais je n'arrive pas à voir où modifier ce paramètre.
    Je préfèrerais n'autoriser que sur certaines pages et pas sur tout le site.

    merci d'avance

  4. #4
    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
    Ce problème survient lorsqu'il y a du code JS ou des balises dans les données postées...(par exemple si le caractère "<" est présent ce sera détécté comme une possible attaque)
    si tu veux autoriser les données avec ce genre de caractère tu dois mettre l'option "enableEventValidation" à false si j'ai bonne mémoire.

    A+

  5. #5
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    As-tu déjà essayé de virer tes fonctions JS des events server, comme dit plus tôt ?
    Plus je connais de langages, plus j'aime le C.

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Si je retire le javascript il n'y pas pas de bug mais cela ne fonctionne plus

    Les deux combobox et le code Javascript qui les fait interagir se trouvent dans un UserControl.
    Le UserControl se trouve dans une masterpage

    EnableEventValidation="False" n'est pas possible dans un masterpage.
    Il faudrait que je le mette sur chaque page ?

  7. #7
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Quand tu laisses l'attribut erroné y'a un bug ... mais ça fonctionne ?
    Quoi qu'il en soit je te l'ai dit, pour du JS côté client c'est l'attribut OnClientClick, et pas OnClick.
    Plus je connais de langages, plus j'aime le C.

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    jopopmk,

    J'avais effectivement fait une erreur hier en postant mon message. Désolé.
    Ce n'était pas onClick, j'ai rectifié.

    par contre onClientClick n'a pas d'action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <asp:DropDownList ID="cb_Famille" 
                                        style="width:150px;" 
                                        OnClientClick = "TECHNO_Reagir(this)"
                                        runat="server">
                                    </asp:DropDownList>
    avec onChange cela fonctionne.

  9. #9
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    OnChange c'est l'équivalent côté client du OnSelectIndexChange.
    Une fonction JS associée à OnChange sera donc bien exécutée, et il n'y aura pas de retour server "officiel" si l'AutoPostBack est à false.

    Sinon que fait ta fonction ? Une requête AJAX qui récupère un pool de tag option que tu incrustes dans le select cb_Famille ?
    Attention, cb_Famille est l'identifiant côté server, il faut faire une petite manip' pour obtenir l'identifiant côté client.

    PS : l'utilisation du OnClick (ou OnClientClick) était quand même assez étrange pour ce que tu voulais faire.
    Plus je connais de langages, plus j'aime le C.

  10. #10
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Bonjour,
    La fonction javaScript rest déjà écrite et fonctionne sans souci.
    Son but est déviter un AR vers le serveur donc même pas d'Ajax. Je construit un tableau au moment du chargement de la page avec toutes les données (15 environ). La combobox de famille actualise la seconde à partir de ce tableau.

    Il n'y a pas d'erreur à ce niveau.
    C'est au moment où on post la page que le message apparaît.

  11. #11
    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
    Comme dit plus bas, est ce que dans tes données postées il y a des balise, caractères spéciaux ( ex : "<"), du code JS ou autre car c'est cela qui déclenche l'erreur décrite dans ton premier post

  12. #12
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Non il n'y a pas de chaines contenant des balises.
    Je crois d'ailleurs que le message est différent.

Discussions similaires

  1. erreur suite à récupération du contenu d'une combobox
    Par Freud44 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 22/07/2008, 17h34
  2. Modification du contenu d'une ComboBox
    Par ludojojo dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 23/05/2008, 17h29
  3. message d'erreur après modification config MOCS 2007
    Par phoenix75 dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 09/04/2008, 15h10
  4. Erreur de compilation après modification du Uses
    Par DevelOpeR13 dans le forum Langage
    Réponses: 5
    Dernier message: 30/10/2007, 14h23
  5. Erreurs après modification
    Par Shivaneth dans le forum Struts 1
    Réponses: 25
    Dernier message: 03/08/2007, 16h17

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