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 :

Envoyer vers une ancre de la page suite à un post


Sujet :

ASP.NET

  1. #1
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut Envoyer vers une ancre de la page suite à un post
    Bonjour à tous,

    Dans ma page, j'ai un formulaire avec un bouton de validation, et, à coté, j'ai un treeview.
    Lorsque que l'on clique sur le bouton ou que l'on clique sur un noeud du Treeview, ca poste la page et un gridview s'affiche en pied de page (en plus du formulaire et du treeview qui restent en haut).
    J'aimerais que suite au post, il fasse ce qu'il a à faire et que l'ascenseur de la page se mettre automatiquement au niveau du gridview (un ancre, quoi).

    J'ai essayé de multiples solutions, mais je n'y arrive pas.

    Pouvez vous m'aider ?

    Merci d'avance.

    David.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 6
    Par défaut
    Bonsoir,

    As tu essayé de mettre un id sur ton GridView, ou sur une autre balise proche, et de rediriger la page après avoir appuyé sur le bouton ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void TestMethode(object sender, EventArgs e)
    {
        Response.Redirect("Default.aspx#ancre");
    }
    Avec Response.Redirect je redirige le navigateur vers la même page mais en utilisant l'ancre. Il y a peut être d'autre moyen mais c'est le premier et le plus simple à mettre en place qui me vienne à l'esprit.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Sinon, du code javascript côté client déclenché sur condition.

  4. #4
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bonjour bacelar et Sirdec,

    Oui, j'ai bien essayé cette solution, mais il raffraichit la page et je ne le veut pas.

    Quand au code javascript, je ne sais pas trop comment faire car il ne faut pas le faire dans tous les cas, ca doit être une condition qui est donnée par le code behind.

    Voici toutes une palette de choses que j'ai essayé sans résultat satisfaisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //string anchorScript = "<script language='javascript'>window.location.href='#piedGvDoc';</script>";
    //string anchorScript = "window.location.href='#piedGvDoc';";
    //string anchorScript = "<script language='javascript'>window.alert('COUCOU');</script>";
    //Response.Redirect(Request.Url.ToString() + "#piedGvDoc");
    //Response.Write("<script language='javascript'>location.href = '#piedGvDoc';</script>");
    //Page.ClientScript.RegisterStartupScript(GetType(), "anchor", "location.href = '#piedGvDoc';", true);
    //Page.ClientScript.RegisterStartupScript(this.GetType(), "anchorScript", anchorScript);
    //this.Page.RegisterStartupScript("Startup", anchorScript); // Startup Onload
    //Page.ClientScript.RegisterStartupScript(this.GetType(), "jump", anchorScript);

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Je ne vois pas trop de problèmes avec un updatePanel (d'ASP.NET AJAX) et le code suivant :
    http://forums.asp.net/t/1115321.aspx?PageIndex=2

  6. #6
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    bacelar,

    http://forums.asp.net/t/1115321.aspx?PageIndex=2

    Heu... Tu as du te tromper de post... Je ne vois pas le rapport entre ton message et mon pb.

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Bin si, eux ils ont une textbox et toi t'a une table (gridview).
    Regardes d'abord du côté des UpdatePanel.

  8. #8
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bonjour Bacelar,

    Je ne peux pas mettre d'UpdatePanel car l'Ajax m'est interdit sur cette page pour plusieurs raisons.

    De plus, je ne comprends pas trop le code du lien que tu m'as donné.
    Ca me parait bien lourd pour le peu que je veuille faire, et je ne peux pas faire de focus car je n'ai pas d'éléments de formulaire, mon gridView n'est pas focussable.

    Par exemple, ce code fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.Page.RegisterStartupScript("Startup ", <script language='javascript'>window.location.href='#teteGvDoc';</script>);
    Seulement, il fait un va et vient car après le chargement de la page, un script automatique de DNN lui dit de se remettre en haut de la page.

  9. #9
    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
    "Winter is coming" (ma nouvelle page d'accueil)

  10. #10
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Bonjour Immobilis,

    Le 1er lien, j'avais déjà essayé, ça ne fonctionne pas.

    Quant-à MaintainScrollPositionOnPostback, ce n'est pas ce que je veux (je veux justement positionner la page ailleurs qu'à l'endroit du dernier clic) et malheureusement, c'est ce que fait DNN (même si je n'arrive pas à trouver cette méthode dans le code... Il doit être compilé...).

    Je viens d'essayer ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DotNetNuke.Framework.CDefault cd = new DotNetNuke.Framework.CDefault();
    cd.Page = Page;
    cd.ScrollToControl(lblInfos);
    Seulement, ça fonctionne très bien, mais uniquement en mode admin...

  11. #11
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Je me demande quand meme pourquoi on t'interdis d'utiliser de l'AJAX alors que tu peux utiliser du javascript. La solution serait beaucoup plus facile.

  12. #12
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    C'est un page déjà lourde et on s'est rendu compte que l'AJAX (car il y en avait et j'ai passé 2 jours à l'enlever) augmentait fortement le temps de chargement de la page... Et comme il y a beaucoup de postBack.

    De plus, une minorité d'utilisateurs avaient une config qui ne permettait pas l'exécution des fonctions AJAX (sans possibilité de mettre à jour leur versions).

    Mais comment ça se fait qu'un script fonctionne ou pas selon qu'on a des droits d'admin ou pas ???

  13. #13
    Membre éprouvé Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 065
    Par défaut
    Et voilà un code en C# qui fonctionne à merveille:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((DotNetNuke.Framework.CDefault)this.Page).ScrollToControl(lblInfos);

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

Discussions similaires

  1. Récupérer la page en cours + l'envoyer vers une page javascript
    Par mecmec dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/03/2014, 17h25
  2. Réponses: 3
    Dernier message: 01/12/2011, 10h08
  3. Lien hypertexte vers une ancre dans une même page
    Par michaeljeru dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/11/2011, 14h04
  4. Redirection d'une page HTML vers une ancre flash
    Par ElPaso dans le forum Flash
    Réponses: 0
    Dernier message: 05/01/2009, 19h14
  5. Réponses: 4
    Dernier message: 04/06/2007, 17h05

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