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 :

[ASPX C#] pb click sur boutton dans usercontrol


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 13
    Points : 10
    Points
    10
    Par défaut [ASPX C#] pb click sur boutton dans usercontrol
    Bonjour,

    Je me remets à dev un petit et là, je lutte sur un problème qui me prend pas mal la tete. J'espère que vous voudrez bien m'aider.

    J'ai un usercontrol (un caddy) à utiliser dans un autre user control, lui-meme chargé dans une page.

    Pour schématiser :
    MasterPage
    |_ Aspx
    |_ plusieurs usercontrols sur les différents éléments de la page
    |_ dans l'un de ces usercontrol (coloneDroite.ascx), je veux charger un autre usercontrol : le caddy

    Dans ce caddy, si je clique sur un bouton, peut importe lequel il ne se passe rien. Dans un autre usercontrol du site, si je veux ajouter au caddy (sur le meme principe que ci-dessus), il ne se passe rien !

    Voici un passage du code utilisé pour ajouter au panier :
    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
    public partial class ViewBook : System.Web.UI.UserControl
    {
        protected System.Web.UI.WebControls.ImageButton AddCart;
        protected ZoneB.Shop.GenericBasket.Basket Basket1;
     
        override protected void OnInit(EventArgs e)
        {
            InitializeComponent();
            base.OnInit(e);
        }
     
        private void InitializeComponent()
        {
            this.Basket1.Checkout += new System.EventHandler(this.Page_Checkout);
            this.Basket1.Changed += new System.EventHandler(this.Basket_Changed);
            this.AddCart.Click += new System.Web.UI.ImageClickEventHandler(this.AddToBasket);
            this.Load += new System.EventHandler(this.Page_Load);
     
        }
        public void AddToBasket(object sender, EventArgs e)
        {
            throw new Exception("The method or operation is not implemented.");
            ////this.addToBasket(Convert.ToInt32(ZoneB.WebTools.GetQuery("idlivre")));
            //ZoneB.Shop.ShoppingCart sc = new ZoneB.Shop.ShoppingCart();
            //sc.addToBasket(Convert.ToInt32(ZoneB.WebTools.GetQuery("idlivre")));
        }
    J'essaie pourtant de charger les eventHandler dans le OnInit().
    Pour info, le control "ViewBook" est chargé dynamiquement dans la page aspx dans le Page_Init en utilisant : "Ph.Controls.Add(LoadControl...."

    Merci d'avance !

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

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 581
    Points
    581
    Par défaut
    Peux tu montrer comment tu as définis ton evnment Onclick sur le UserControl Addchart.

    Si non pkoi ne pas gérer ton évènement Dans ton UserControl directement non?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Bonjour

    L'ajout de ton contrôle Viewbook dans la page est-il conditionné ?

    Il faut t'assurer que, lors du postback déclenché par le click sur ton ImageButton, ton contrôle Viewbook soit bien recréé.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    Salut, j'ai mis du temps à répondre car coupure du net ces deux derniers jours. grrr...

    Gizmau, je n'ai pas de addChart. AddCart est un imageButton classique et c'est bien ce que j'essaie de faire que de géré l'événement dans le usercontrol.

    DevThony, viewBook est bien conditionné. Je ne sais pas s'il est recréé mais ca m'étonnerait puisque je ne vois vraiment aucune réaction du navigateur (pas de chargement, pas d'aller-retour avec le serveur à prioris). Comment m'en assurer ? Meme l'affichage d'un message ou une redirection ne fonctionnent pas.
    Pour te citer : "lors du postback déclenché par le click sur ton ImageButton", je ne pense pas que le postback soit déclenché (j'en suis meme à peu pres certain).

    Merci pour votre aide, je sèche toujours

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

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 581
    Points
    581
    Par défaut
    cela voudrait dire que ton imageButton serait inactif.

    C'est plutot bizarre l'imageButton génère une balise input qui (si je ne me trompe pas n'hésitez pas a me reprendre) lorsque l'on clique dessus fais un submit du formulaire et donc un postBack.

    Peut etre que le PostBack arrive mais ne léve pas l'événement car l'imageButon n'etant pas recréé il ne sais pas a qui il appartient.

    En debug après avoir cliqué tu ne passe pas dans le OnLoad?

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    Le secret est là : le contrôle est ajouté DYNAMIQUEMENT !
    Donc si le contrôle n'est pas recréé à chaque fois, le VIEWSTATE change.
    Si le ViewState change entre 2 Post (premier chargement de la page et vrai post), pouf ! les événements ne se propagent pas.

    En clair :

    si on a un dans le Page_Load
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(!Page.IsPostBack)
    {
       chargeMonControleDynamique();
       initDeParam();
    }
    ça ne marchera pas !!

    Il faut avoir dans le Page_Load
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    chargeMonControleDynamique();
    if(!Page.IsPostBack)
    {
       initDeParam();
    }
    Une chose est sûre : quand un événement n'a pas lieu... c'est que le viewstate est cassé. C'est très souvent le cas quand on fait des contrôles dynamiques.
    Les contrôles dynamiques doivent tjs être reconstruits dans tous les cas (et ne doivent pas être conditionnés par le isPostBack)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    En fait, ca devient encore bizarre...

    J'utilise donc un imageButton (mais aussi testé avec linkbutton et un bouton classique) tout ce qu'il y a de plus normal. En parlant du pb a un ami, il n'a rien remarqué, sous firefox !
    Le problème est donc qu'il y a postback et que tout fonctionne sur Firefox et que cela ne fonctionne pas sous IE. Très curieux parce qu'il me semblait qu'il était générés de la meme manière pour les deux navigateurs.

    Je vais chercher de ce coté mais merci pour votre aide à tous. (si vous avez une idée, je suis quand meme preneur !)

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

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 581
    Points
    581
    Par défaut
    regarde si tu as activé le debug de javascript sous IE, tu as peut etre une erreur javascript.

Discussions similaires

  1. Verifier click sur boutton dans un autre site
    Par thebarbarius dans le forum Langage
    Réponses: 4
    Dernier message: 21/06/2011, 10h29
  2. Double click sur textbox dans custom server contro
    Par cbleas dans le forum ASP.NET
    Réponses: 3
    Dernier message: 18/01/2011, 08h40
  3. [AC-2003] simuler click sur bouton dans "on exit" d'un controle
    Par tchayapluk dans le forum IHM
    Réponses: 0
    Dernier message: 16/11/2009, 06h18
  4. Réponses: 4
    Dernier message: 16/08/2009, 02h00
  5. [POO] Simuler envoi de click sur élément dans une page HTML
    Par opsi dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/09/2008, 13h24

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