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 :

[ASP.NET][AJAX] bouton ne fonctionnent plus au premier post back


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 135
    Points : 84
    Points
    84
    Par défaut [ASP.NET][AJAX] bouton ne fonctionnent plus au premier post back
    Bonjour à tous,

    Je galère autant en ajax pour des trucs bidon bien sur
    Je voulais savoir pourquoi est ce que cela arrive...

    1. Je créé des boutons dynamiquement à partir d'un arraylist contenant des string (texte des boutons)

    2. Tous ces boutons sont abonnés au meme event.

    3. L'evenement ajoute un string dans l'arraylist cité plus haut vide le contenu du webcontrol puis recréé la liste des boutons avec la meme méthode qu'en 1

    OR! lorsque je veux cliquer sur une des boutons (n'importe lequel) ben rien ne se passe...

    Une explication???

  2. #2
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Si les boutons sont créés dynamiquement, ils doivent être recréés à chaque PostBack...

    Vérifie qu'il n'y ait pas un petit if(!IsPostBack) qui traîne
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 135
    Points : 84
    Points
    84
    Par défaut
    gné?

    donc je fais comment??
    et je n'ai pas mis de if(!ispostback)

    je bosse sur un webcontrol pour information (je l'avais pa précisé dans mon premier post)

    J'ai un page Layout avec les balises <asp:Updatepanel...> et <ContentTemplate>

    et je colle le webcontrol dedans.

  4. #4
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Points : 1 352
    Points
    1 352
    Par défaut
    La raison est que tu dois mettre ton ArrayList dans le viewstate si tu veux pouvoir le récupérer après un postback.

    Donc sur le clic du bouton tu fait ton opération +

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ViewState["MonArray"] = TonArray;
    Ensuite sur le load de ta page tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (ViewState["MonArray"] != null)
    {
      TonArray = (ArrayList) ViewState["MonArray"] 
    }
    Ludovic,
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

  5. #5
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    ArrayList est sérialisable ? Je ne m'en rappelle plus... Car tout ce qui est mis dans le ViwState doit etre serialisable, non ?
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  6. #6
    Rédacteur

    Inscrit en
    Juin 2004
    Messages
    744
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juin 2004
    Messages : 744
    Points : 1 352
    Points
    1 352
    Par défaut
    Oui elle l'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [Serializable]
    public class ArrayList : IList, ICollection, IEnumerable,ICloneable
    Envie de contribuer à la rubrique SharePoint ? Contactez moi par MP !

    SharePoint : http://sharepoint.developpez.com
    Mon site : http://lefortludovic.developpez.com
    Mon blog : http://www.consultpoint.net/blog

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 135
    Points : 84
    Points
    84
    Par défaut

    petit up sur mon problème.

    J'ai un peu avancé mais ça ne parche toujours pas :'(

    J'ai créé un view state qui est bien récupéré. je me suis documenté sur le cycle de vie d'une page ASP.NET et j'ai essayer de créer mon menu dans plusieurs méthodes (OnInit, OnLoad, CreateChildControls) et rien n'y fait.
    Normalement selon le cycle de vie de mon webcontrol il devrait y avoir au clik d'un bouton,

    OnInit
    LoadViewState
    OnLoad
    RaisePostBackEvent (event Click de mon bouton fait son travail)
    EnsureChildControls
    CreateChildControls
    SaveViewState
    RenderControl
    Render


    Je ne vois toujours pas pourquoi après le premier clic rien et postback, les boutons ne marchent plus alors que ça marche si je n'utilise pas les updatepanels...

    si vous avez la réponse :p

    ah oui et autre chose. c'est normal que certaines fois j'ai une exception du genre "Viewstate corrompu"? cela m'arrive quelques fois

    merci pour votre aide !

  8. #8
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Erreur de validation du ViewState MAC ?

    Si ton erreur est bien celle la, c'est un 'bug' du framework il me semble. Il arrive quand on manipule les update panel... Nous l'avons rencontré dans notre entreprise, mais malheureusement nous n'avons pas trouvé l'explication exacte, et encore moins le correctif...
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 135
    Points : 84
    Points
    84
    Par défaut
    si il existe un correctif il me semblant mais pas forcement secure
    il suffit de modifier le fichier web.config dans la balise <system.web>

    <pages enableSessionState="false" enableViewState="true" enableViewStateMac="false" validateRequest="false" pageParserFilterType="Microsoft.SharePoint.ApplicationRuntime.SPPageParserFilter, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" asyncTimeout="7">

    il suffit de le mettre à false.

    par contre pour le problème dû à l'UpdatePanel personne d'autre???

  10. #10
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Citation Envoyé par loic_86 Voir le message
    <pages enableSessionState="false" enableViewState="true" [COLOR="Red"]enableViewStateMac="false"[/COLOR="Red"]...
    Il me semble en effet que j'ai entendu parler de ca, mais refusé à cause de problèmes de sécurité : cette modif permtterai de modifier le ViewState entre deux actions...

    Si quelqu'un a une réponse à cette problématique, je suis preneur !!
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 135
    Points : 84
    Points
    84
    Par défaut
    Re

    j'ai vu quelque chose sur le net parlant de ça sans passer par le Web.config ça concerne le MachineKey mais je sais plus trop quoi j'ai pas retrouvé la fenêtre...

    Sinon pour mon problème car il est toujours là
    je vais le résumer en 2 phrases.


    1- Mon menu marche sans updatepanel.

    2- Si je l'encadre mon menu dans un updatepanel dans ma page aspx, le premier clic marche et les autre non sachant aussi que le viewstate marche bien au premier clic...


    C'est bon ça tient en 2 phrases

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 135
    Points : 84
    Points
    84
    Par défaut
    Au cas où ça pourrait être utile, j'ai fait un winmerge sur le code source de la page avant et apres postback et le code est le même

Discussions similaires

  1. Réponses: 8
    Dernier message: 28/05/2009, 10h40
  2. Réponses: 0
    Dernier message: 06/02/2009, 20h20
  3. Réponses: 2
    Dernier message: 20/08/2008, 23h09
  4. probleme avec asp.net ajax
    Par tarajji dans le forum ASP.NET
    Réponses: 3
    Dernier message: 26/03/2007, 10h43

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