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 :

Gestion du back pour page aspx


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 32
    Par défaut Gestion du back pour page aspx
    Bonjour à tous,
    Comment gérer la gestion du retour à la page précédente pour un site écrit en aspx C#, sachant que j'ai des dropdownlist qui sont alimentées par une base de données.
    Je voudrais donc conserver les items (dans la dropdownlist) sélectionnés précédement en faisant un back sur le browser.

    Problème : mes dropdownlist sont réinitialisées car je repasse dans la méthode Initialize()


    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
    protected void Page_Load(object sender, EventArgs e)
    {
            if (!IsPostBack)
            {
                try
                {
                    Initialize();
                }
                catch (Exception ex)
                {
                    Logger.Error("Method Page_Load\n" + ex.ToString());
                    Response.Redirect("~/Error.aspx", true);
                }
            }
     }
    Piste : faut-il utiliser la propriété ViewState ?

    Merci à tous

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    Normalement, la touche "back" affiche la page en cache chez le client. A moins que tu ais du javascript qui entre en conflit, les listes ne devraient pas se recharger.

    Est-ce que cela a aussi lieu en mode release ou sur un site de prod?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 32
    Par défaut
    oui c'est le comportement normal je pense ....
    j'ai quelques composant en AJAX, mais même ceux sans AJAX se réinialisent.

    En debug, on repasse bien dans la méthode "Initialize();" alors que l'on ne devrait à priori pas.

    Même comportement en Release.

  4. #4
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Si il y a postback tu ne devrais pas passer dans la méthode initialize.
    Est-ce que tu as une méthode "<DropDownList>_OnSelectedIndexChange"?
    Peux-tu mettre le code de Initialize()?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 32
    Par défaut
    Oui j'ai bien des événements du type _SelectedIndexChanged sur mes DropDownList avec un AutoPostback sur l'une d'elle.

    J'ai l'impression que AJAX me force le rafraichissement.

    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
    private void Initialize()
    {
            // Get All mark
            GetMark();
     
            // Get all energies
            GetEnergy();
     
            // Get all categories
            GetCategory();
     
            // Get all gears
            GetGear();
    }
     
    private void GetMark()
    {
            // Paramétrage de la DropDownList
            ddlMark.DataSource = VHC_MARK.GetAll();
            ddlMark.DataBind();
    }
     
    private void GetModel(Guid markid)
    {
            // Paramétrage de la DropDownList
            ddlModel.DataSource = VHC_MODEL.GetVHC_MODELByMarkId(markid);       
    }
     
    private void GetEnergy()
    {
            // Paramétrage de la DropDownList
            ddlEnergy.DataSource = VHC_ENERGY.GetAll();
            ddlEnergy.DataBind();
    }
     
    private void GetCategory()
    {
            // Paramétrage de la DropDownList
            ddlCategory.DataSource = VHC_CATEGORY.GetAll();
            ddlCategory.DataBind();
    }
     
     
    private void GetGear()
    {
            // Paramétrage de la DropDownList
            ddlGear.DataSource = VHC_GEAR.GetAll();
            ddlGear.DataBind();
    }

  6. #6
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Piste : faut-il utiliser la propriété ViewState ?
    Normalement, la propriété viewstate est activée par défaut.
    Essaye en supprimant la fonctionnalité AJAX. Tu utilises quoi d'ailleurs pour l'AJAX?

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 32
    Par défaut
    En effet cela vient bien de AJAX qui doit avoir à gestion particulière des retours.

    <asp:ScriptManager ID="ScriptManager1" runat="server" EnableHistory="true" onnavigate="ScriptManager1_Navigate" />

    + ViewState pour enregistrer l'état

    Merci à toi

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/07/2007, 13h14
  2. Réponses: 2
    Dernier message: 10/07/2007, 13h45

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