Updatepanel imbriqué [Résolu]

Signaler
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
6 décembre 2006
-
Messages postés
19
Date d'inscription
mercredi 14 janvier 2004
Statut
Membre
Dernière intervention
25 juillet 2008
-
Bonjour à tous,

j'ai essayé d'imbriqué deux "updatepanel".

Pour l'instant je n'ai pas réussi à le faire marcher.

Est-ce que quelqu'un a déjà réussi ou sait si c'est possible ?

Je ne voudrai pas m'obstiner pour rien.

Merci d'avance pour vos réponses.

Damien

13 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Bonjour,

mon Outlook vient de me dire que j'ai ce mail en attente ... je répond dès fois que tu n'as pas résolu le problème.

Je pense qu'il faut modifier 

            AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
            trigger.ControlID = bt.ClientID;
            trigger.EventName = "Click";
            up.Triggers.Add(trigger);

en 

            AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
            trigger.ControlID = bt.ID;
            trigger.EventName = "Click";
            up.Triggers.Add(trigger);

j'ai pas testé mon petit doigt me dit que ca devrait mieux marcher ensuite.

<hr />Cyril - MVS - MCP
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Oui c'est possible :-)

Mais il faut mettre la propriété UpdateMode à Conditional plutot que Always sur l'updatePanel parent. Sinon tu vas rechearger ta page quoi qu'il arrive.

<hr />Cyril - MVS - MCP
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
6 décembre 2006

Super. C'est génial !

Merci Cyril pour ta réponse.

A bientôt.

Damien
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
6 décembre 2006

Bonjour à tous,

après de nombreux essais infructueux, je me dis que ce n'est pas si facile :-(.

Quelqu'un aurait-il un exemple de code imbriquant 2 updatepanel ?

Merci par avance.

Damien
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
et pourquoi n'est-ce pas si facile ? où est le problème ?

<hr />Cyril - MVS - MCP
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
6 décembre 2006

En fait le updatepanel fils recharge ma page en entier.

Le détail qui complexifie le problème est que mon updatepanel fils est chargé dynamiquement par l'intermédiaire de l'updatepanel père.

Cela viendrait-il de là ?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
renseigne toi sur la propriété UpdateMode, dans la plupart des cas il faut qu'elle soit sur conditional, et c'est aussi le cas pour toi sur les 2UpdatePanels.

<hr />Cyril - MVS - MCP
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
6 décembre 2006

D'accord j'ai trouvé !

Le problème ne venait pas des updatepanel.

En fait c'est moi qui lance "manuellement" le __doPostBack, or mon deuxième bouton, lié au trigger, étant dans un webcontrole, l'id client est différent de l'id serveur.

Merci pour ton aide Cyril.

En espérant que cela aidera d'autre personne.

A bientôt

Damien
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
6 décembre 2006

Je continue sur le sujet.

J'ai testé le mode "conditionnal" ou "always", pour l'instant l'un ou l'autre de change dans le cas exposé ci-dessous.

Je vous tiens au courant de mes avancés.

Mon nouveau problème est que mon 2ème updatepanel est chargé via le 1er par l'intermédiaire de l'ajout d'un controle.

J'ai bien le l'update qui se fait par contre mon événement ne se déclenche pas.

Quelqu'un aurait-il une piste ?

En attendant j'y retourne.

Dur dur l'ajax !!
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Statut
Membre
Dernière intervention
6 décembre 2006

Décidément je n'y arrive vraiment pas, pourtant ça fait 2 jours que je m'y efforce.

Je vous donne ci-dessous le code-behind de mon WebControl.

Celui est appelé dans un autre updatepanel.

Son objectif est de compter le nombre de clic sur un bouton.

Sachez que la méthode "btnIncrement_Click" n'est jamais appelé !!

Au secours je n'en peux plus !

Merci d'avance pour votre aide.

public partial class CtrlSimpleTest : System.Web.UI.UserControl
    {
        Label lblTest = new Label();
        Button btnIncrement = new Button();
        UpdatePanel up = new UpdatePanel();

        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            Control container;

            ScriptManager sm = ScriptManager.GetCurrent(this.Page);

            up.ID = "upWindow";
            up.UpdateMode = UpdatePanelUpdateMode.Conditional;
            up.RenderMode = UpdatePanelRenderMode.Inline;
            container = up.ContentTemplateContainer;
               
            LinkButton bt = new LinkButton();
            bt.ID = "bt";
            bt.Text = "click me";
            bt.Click += new EventHandler(btnIncrement_Click);
            container.Controls.Add(bt);

            AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
            trigger.ControlID = bt.ClientID;
            trigger.EventName = "Click";
            up.Triggers.Add(trigger);

            Controls.Add(up);
        }

        void btnIncrement_Click(object sender, EventArgs e)
        {
            NumOfClicks++;
            up.Update();
        }

        private Int32 NumOfClicks
        {
            get
            {
                if (Page.Session["NumOfClicks"] == null)
                    Page.Session["NumOfClicks"] = 0;

                return (Int32)Page.Session["NumOfClicks"];
            }
            set
            {
                Page.Session["NumOfClicks"] = ((Int32)Page.Session["NumOfClicks"]) + 1;
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
Messages postés
16
Date d'inscription
samedi 11 décembre 2004
Statut
Membre
Dernière intervention
31 octobre 2008

Bonjour tout le monde,

J'ai un petit problème avec le UpdatePanel, alors je m'explique.

J'ai un UserControl qui contruit un tableau, avec les entêtes de lignes et colonnes contiennent des LinkButton, et le contenu du tableau des ChechBox (pour donner ou retirer des droits) ,  les ChechBox sont bien pris en compte par le UpdatePanel donc ne provoque pas de pastback (même s'il sont en Autopostback=true), seulement les LinkButton ne sont pas pris en compt par ce dernier et donc ils provoque un rafraichissment de la page.

Doit-je à chaque fois les inscrire à l'aide du AsyncPostBackTrigger ou bien y'a t-il une autre explication.

Merci
Messages postés
1
Date d'inscription
jeudi 10 mai 2007
Statut
Membre
Dernière intervention
10 mai 2007

Bonjour,

J'ai aussi un problème qui se rapporte a desupdatepanel imbriqué.

Voici ma situation
    J'au un usercontrol1 qui contient un updatepanel qui lui a un gridview , dropdownlist et un bouton

    premièrement je sélectionne un élément dans le dropdownlist et je click sur le bouton pour l'ajouter au gridview

pour cette partie pas de problème si je la teste seul tous fonctionne bien

le problème survient dans mon autre usercontrol2 qui lui a aussi un updatepanel qui contient
un gridview , dropdownlist et un bouton qui font la meme chose que l'autre usercontrol
mais la différence c'est que les éléments ajouter dans ce gridview contienne mon premier usercontrol qui est le détail de l'élément ajouté

Donc, quand j'exécute l'application et que je click sur le bouton du usercontrol2 j'ai cette erreur
System.InvalidOperationException was unhandled by user code
  Message="A control with ID 'gv_Language' could not be found for the trigger in UpdatePanel 'UpdatePanel10'." gv_Language est le gridview du premier usercontrol

selon ce que je comprend il cherche un trigger dans mon premier usercontrol et je ne voie pas pourquoi

et si j'enlève mon usercontrol1 de mon templatecolomn du usercontrol2 plus de problème les item s'ajoute mais sans le détail naturellement.
Messages postés
19
Date d'inscription
mercredi 14 janvier 2004
Statut
Membre
Dernière intervention
25 juillet 2008

Salut

J'ai à peu prés le même problème (enfin jusqu'à la réponse de Cyril) dans les mêmes conditions.
Sauf que j'ai appliqué la solution de Cyril et ça marche pas mieux. Il ne passe toujours pas dans la Sub du LinkButton et vide tout le UpdatePanel Père

Vous pouvez m'aider ?

PS : moi, je le fais en VB, ça n'aurait pas d'incidence, tout de même ?

[www.methkaff.com Ablanore, le JDR]