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 :

Très gros problème avec le ScriptManagerProxy


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Points : 44
    Points
    44
    Par défaut Très gros problème avec le ScriptManagerProxy
    Bonjour,

    Depuis peu, j'ai mis en place un ScriptManagerProxy dans une de mes pages afin de restaurer les variables et contrôles à leur état initial suite un retour back d'une autre page. Je rencontre le problème suivant. Lors de mes essais et durant les 2 premiers allez-retour l'événement suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected void ScriptManagerProxy1_Navigate(object sender, HistoryEventArgs e)
    {
    ScriptManager script = (sender as ScriptManager);
     
    if (script.IsInAsyncPostBack && script.IsNavigating)
    {
    ...
    }
     
    }
    est utilisé pour restituer les valeurs des variables et l'état des contrôles précédemment sauvegardées avec la méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    protected void CreationPointHistorique()
    {
     
    NameValueCollection state = new NameValueCollection();
     
    ...
     
    ScriptManager.GetCurrent(Page).AddHistoryPoint(state, Title); 
    }
    Lors du 3ème allez-retour l'événement n'est plus exécuté et donc la page n'est plus restaurée à son état initial !???

    Les étapes décrites une à une,

    1er étape :
    1er accès à la page -> sauvegarde des paramètres dans l'historique -> click sur un lien qui redirige sur une autre page -> utilisation du bouton Back du navigateur pour revenir sur la première page -> exécution de la méthode de la méthode ScriptManagerProxy1_Navigate et restitution correcte de la page

    2ème étape :
    reclick sur le même lien qui redirige sur la même deuxième page -> click sur le bouton Back du navigateur -> retour sur la première page -> exécution de la méthode de la méthode ScriptManagerProxy1_Navigate et restitution correcte de la page ->

    3ème étape :
    reclick sur le même lien qui redirige sur la deuxième page -> reclick sur le bouton Back du navigateur -> l'événement ScriptManagerProxy1_Navigate n'est plus exécuté !


    Quelqu'un aurait-il une idée du problème et surtout une solution ???

    Merci d'avance pour vos réponses

    cordialement

  2. #2
    Expert confirmé
    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 : 41
    Localisation : France

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

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

    Une petite question : pourquoi réinventer la roue au lieu d'utiliser le ScriptManager ASP.NET ou bien le ToolkitScriptManagerde l'Ajax Control Toolkit ? Ils te permettent déjà d'ajouter des HistoryPoints pour gérer les aller-retour même pour les chargement asynchrones sur tes pages.

    A moins que tu désires précisément code toi même ton ScriptManager dans un but didactique ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Nicolas Esprit Voir le message
    Bonjour,

    Une petite question : pourquoi réinventer la roue au lieu d'utiliser le ScriptManager ASP.NET ou bien le ToolkitScriptManagerde l'Ajax Control Toolkit ? Ils te permettent déjà d'ajouter des HistoryPoints pour gérer les aller-retour même pour les chargement asynchrones sur tes pages.

    A moins que tu désires précisément code toi même ton ScriptManager dans un but didactique ?
    bonjour,

    Heeuuuu ! je comprends pas bien la réponse car c'est bien le ScriptManager de l'Ajax toolkit que j'utilise (et oui effectivement, j'utilise des chargements asynchrones - updatepanel) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server" onnavigate="ScriptManagerProxy1_Navigate"></asp:ScriptManagerProxy>
    Ou alors s'il y a une autre solution plus simple comme tu sembles l'affirmer, pourrais-tu m'indiquer comment faire ou à défaut me diriger vers des pages qui me l'expliqueraient?

    Merci d'avance

    Cordialement

  4. #4
    Expert confirmé
    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 : 41
    Localisation : France

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

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

    Attention à ne pas confondre le ScriptManager de base dans ASP.NET et celui customisé (qui permet entre autre des optimisations comme le regroupement de script), qui lui s'appelle ToolkitScriptManager et qui est fourni par l'Ajax ControlToolkit.

    Après pour le ScriptManagerProxy j'ai lu un peu trop vite ton post, désolé .

    De parce que j'ai lu sur MSDN ou sur un blog, il te faut effectivement utiliser l'évènement OnNavigate. Pour ce qui cause la perte des informations au bout du troisième chargement, je ne vois pas trop ce que ça pourrait être, c'est assez bizarre.

    As-tu essayé une page simple pour tester, avec par exemple un unique label et un bouton pour le PostBack ou la redirection ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Nicolas Esprit Voir le message
    As-tu essayé une page simple pour tester, avec par exemple un unique label et un bouton pour le PostBack ou la redirection ?
    Pas encore, mais si cela perdure je vais devoir passer par cette solution pour vérifier si cela se reproduit mais par manque de temps (j'ai plein d'autres trucs à faire à côté), je vais attendre un peu histoire de voir si quelqu'un a déjà rencontré ce type de problème.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/04/2009, 10h36
  2. Gros problème avec J2SE
    Par StreamEarth dans le forum Général Java
    Réponses: 13
    Dernier message: 23/04/2006, 23h06
  3. Gros problème avec les colations
    Par scaleo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/11/2005, 10h36
  4. Gros problème avec la facturation de Tiscali
    Par Harry dans le forum Dépannage et Assistance
    Réponses: 5
    Dernier message: 21/10/2004, 19h55
  5. Gros Problème avec DirectShow et la méthode RELEASE
    Par Olivier Delmotte dans le forum DirectX
    Réponses: 3
    Dernier message: 10/03/2003, 19h10

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