Updatepanel imbriqué [Résolu]

hysteria31 28 Messages postés mardi 27 septembre 2005Date d'inscription 6 décembre 2006 Dernière intervention - 29 nov. 2006 à 19:14 - Dernière réponse : methkaff 19 Messages postés mercredi 14 janvier 2004Date d'inscription 25 juillet 2008 Dernière intervention
- 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
Afficher la suite 

13 réponses

Répondre au sujet
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 17 déc. 2006 à 15:47
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jesusonline
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 29 nov. 2006 à 19:21
0
Utile
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
Commenter la réponse de jesusonline
hysteria31 28 Messages postés mardi 27 septembre 2005Date d'inscription 6 décembre 2006 Dernière intervention - 29 nov. 2006 à 19:40
0
Utile
Super. C'est génial !

Merci Cyril pour ta réponse.

A bientôt.

Damien
Commenter la réponse de hysteria31
hysteria31 28 Messages postés mardi 27 septembre 2005Date d'inscription 6 décembre 2006 Dernière intervention - 30 nov. 2006 à 11:21
0
Utile
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
Commenter la réponse de hysteria31
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 30 nov. 2006 à 11:30
0
Utile
et pourquoi n'est-ce pas si facile ? où est le problème ?

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

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.