Updatepanel imbriqué [Résolu]

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

Votre réponse

13 réponses

Meilleure réponse
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Dernière intervention
13 octobre 2010
- 17 déc. 2006 à 15:47
3
Merci
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

Merci jesusonline 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Dernière intervention
13 octobre 2010
- 29 nov. 2006 à 19:21
0
Merci
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
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Dernière intervention
6 décembre 2006
- 29 nov. 2006 à 19:40
0
Merci
Super. C'est génial !

Merci Cyril pour ta réponse.

A bientôt.

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

<hr />Cyril - MVS - MCP
Commenter la réponse de jesusonline
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Dernière intervention
6 décembre 2006
- 30 nov. 2006 à 11:42
0
Merci
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
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Dernière intervention
13 octobre 2010
- 30 nov. 2006 à 11:48
0
Merci
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
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Dernière intervention
6 décembre 2006
- 30 nov. 2006 à 14:08
0
Merci
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
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Dernière intervention
6 décembre 2006
- 30 nov. 2006 à 16:20
0
Merci
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
Messages postés
28
Date d'inscription
mardi 27 septembre 2005
Dernière intervention
6 décembre 2006
- 1 déc. 2006 à 17:06
0
Merci
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
Messages postés
16
Date d'inscription
samedi 11 décembre 2004
Dernière intervention
31 octobre 2008
- 31 janv. 2007 à 14:25
0
Merci
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
Messages postés
1
Date d'inscription
jeudi 10 mai 2007
Dernière intervention
10 mai 2007
- 10 mai 2007 à 17:11
0
Merci
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
Messages postés
19
Date d'inscription
mercredi 14 janvier 2004
Dernière intervention
25 juillet 2008
- 10 juil. 2008 à 16:54
0
Merci
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.