Updatepanel imbriqué

Résolu
hysteria31 Messages postés 28 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 6 décembre 2006 - 29 nov. 2006 à 19:14
methkaff Messages postés 19 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 25 juillet 2008 - 10 juil. 2008 à 16:54
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

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
17 déc. 2006 à 15:47
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
3
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
29 nov. 2006 à 19:21
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
0
hysteria31 Messages postés 28 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 6 décembre 2006
29 nov. 2006 à 19:40
Super. C'est génial !

Merci Cyril pour ta réponse.

A bientôt.

Damien
0
hysteria31 Messages postés 28 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 6 décembre 2006
30 nov. 2006 à 11:21
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 nov. 2006 à 11:30
et pourquoi n'est-ce pas si facile ? où est le problème ?

<hr />Cyril - MVS - MCP
0
hysteria31 Messages postés 28 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 6 décembre 2006
30 nov. 2006 à 11:42
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à ?
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 nov. 2006 à 11:48
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
0
hysteria31 Messages postés 28 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 6 décembre 2006
30 nov. 2006 à 14:08
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
0
hysteria31 Messages postés 28 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 6 décembre 2006
30 nov. 2006 à 16:20
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 !!
0
hysteria31 Messages postés 28 Date d'inscription mardi 27 septembre 2005 Statut Membre Dernière intervention 6 décembre 2006
1 déc. 2006 à 17:06
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)
        {

        }
    }
0
hbaradi Messages postés 16 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 31 octobre 2008
31 janv. 2007 à 14:25
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
0
dlab2007 Messages postés 1 Date d'inscription jeudi 10 mai 2007 Statut Membre Dernière intervention 10 mai 2007
10 mai 2007 à 17:11
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.
0
methkaff Messages postés 19 Date d'inscription mercredi 14 janvier 2004 Statut Membre Dernière intervention 25 juillet 2008
10 juil. 2008 à 16:54
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]
0
Rejoignez-nous