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 :

2 passages dans le Load sur clic d'un Bouton


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut 2 passages dans le Load sur clic d'un Bouton
    Bonjour, j'ai un petit souci, sur clic d'un LinkButton, ma page se recharge 2 fois au lieu d'une...J'ai bien essayé de gérer tout ça avec un IsPostBack, mais ça ne suffit pas, j'ai d'autres contrôles à faire lors du chargement de la page (notamment la conservation d'un tri pour un binding), et ce n'est pas assez... J'ai bien essayé de gérer avec les ViewState, mais au 2ème chargement de ma page, dans le Load, le ViewState est vide...

    Il me reste l'utilisation des Sessions, mais ça m'embête de mobiliser des variables de Sessions juste pour conserver des infos qui se trouvent sur la même page -___-...

    C'est un bug de .Net ?

    Merci de votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Par défaut
    met ton code pour voir de plus pret.

    tu n'as pas d'url dans ton linkbutton?
    tu ne fais pas de traitement special dans ton evenement?
    tu repasse dans ton evnement lors du deuximen postback?

  3. #3
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Mon LinkButton se trouve dans une classe Column héritant de TableCell qui fera au final partie d'un objet Table, en tant que header. Quand on clique sur le LinkButton, cela va trier la colonne correspondante.



    Objet Table:

    LinkButton1 | LinkButton2 | LinkButton3
    //data //data //data
    ...


    Structure de tout cela:
    page Aspx contien --> ascx qui contient --> objet Table --> qui contient plusieurs objets Columns.

    Ce que j'ai voulu faire la première fois, c'était faire une hiérarchie d'évènements à partir du OnClick de mon LinkButton de ma Column qui remonterait jusqu'à l'aspx pour rebinder les données selon les infos remontées.

    Le soucis, c'est que je remplis tout ça dans le Load de ma page, et que l'event etait bien entendu appelé après le Load. Et si je ne faisais pas ça dans le load, mon évènement de Click n'était jamais appelé.

    J'ai donc décidé d'utiliser le GetPostBackEventReference() dans mon objet Column:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    protected override void OnLoad(EventArgs e)
            {
     
     
                this.linkButton.OnClientClick = this.Page.ClientScript.GetPostBackEventReference(this.linkButton, string.Format("{0}_{1}", this.SortDirectionColumn, this.ColumnIndex));
     
     
                this.Controls.Add(this.linkButton);
     
     
                base.OnLoad(e);
            }
    Et de récupérer tout ceci dans un __EVENTARGUMENT dans mon Load de mon aspx:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string arguments = this.Request.Params.Get("__EVENTARGUMENT");
    Donc quand je clique, 2 passages dans mon Load...

    Donc:
    Pas d'url dans mon LinkButton.
    Plus d'évènement auquel je m'abonne.

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Par défaut
    En fait ton probléme vient surement du href généré.

    Regarde le code géneré mais tu n'a pas quelque chose dans le href (si tu n'a rien precisé dans le PostBackUrl tu dois avoir un postback).

    Ce qui fait que tu retrouve avec deux postback.

    En gros regard le code généré de ton linkButton notamment le href.

  5. #5
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Okay, je vois à peu près, merci du conseil ! En fait je passe bien 2 fois car:
    J'ai un OnClick + un Href, donc, tout à fait normal. En gros, il faut que je mette mon href à vide, c'est çà ?

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Par défaut
    Essai mais je ne pense pas que ca marche.

    plusieurs solution je pense:
    Soit tu met ton javacript: a toi avec ton GetPostbackReference dans Le PostBackUrl (non testé avoir si ca marche).

    soit tu fais un return false; dans OnclientClick apres l'appel de ton postbacken js.

  7. #7
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Yep, ça marche nikel avec le return false !

    Par contre, pour la première méthode, il envoie sur une page vide, normal tu me diras.

    En tout cas merci beaucoup, ça m'évite de faire plein de contrôles redondants sur la page !


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

Discussions similaires

  1. Ajouter une ligne dans une table sur clic d'un bouton
    Par onesat dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 22/04/2014, 18h03
  2. Réponses: 9
    Dernier message: 05/02/2009, 12h56
  3. [JTabbedPane] changer d'onglet sur clic d'un bouton
    Par lazzeroni dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 26/07/2006, 16h58
  4. fonction asp sur clic d'un bouton
    Par Mateache dans le forum ASP
    Réponses: 3
    Dernier message: 21/07/2006, 11h17
  5. Réponses: 47
    Dernier message: 09/06/2006, 17h16

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