none
Could not find UpdatePanel with ID 'xx' RRS feed

  • Question

  • Bonjour, j'ai un problème avec un updatePanel dans une web part.

    Je me prends toujours l'erreur qu'il ne le trouve pas. J'ai cherché sur Google en vain.

    Message: Sys.InvalidOperationException: Could not find UpdatePanel with ID 'ctl00_m_g_68259728_8f6f_47b9_b2e6_16b4fda69d1f_ctl00_ctl00'. If it is being updated dynamically then it must be inside another UpdatePanel.

    Voici mon code :

                _timer = new Timer();
                _timer.ID = "TmLoading";
                _timer.Enabled = false;
                _timer.Interval = 200;
                _timer.Tick += new EventHandler<EventArgs>(_timer_Tick);
                Controls.Add(_timer);
                _updatePanel = new UpdatePanel();
                _updatePanel.ID = "UpList";
                _updatePanel.UpdateMode = UpdatePanelUpdateMode.Conditional;
                _updatePanel.ChildrenAsTriggers = false;
                AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
                trigger.ControlID = _timer.ID;
                trigger.EventName = "Tick";
                _updatePanel.Triggers.Add(trigger);
                Controls.Add(_updatePanel);
                _lblLoading = new Label();
                _lblLoading.ID = "LblLoading";
                _lblLoading.Text = "Chargement...";
                _updatePanel.ContentTemplateContainer.Controls.Add(_lblLoading);
                _ul = new HtmlGenericControl("ul");
                _ul.Attributes["class"] = this.UnorderedListCssClass;
                _ul.Visible = false;
                _updatePanel.ContentTemplateContainer.Controls.Add(_ul);
    J'ai bien mis le UpdateMode à Conditional mais rien n'y fait.

    mardi 3 juillet 2012 07:44

Réponses

  • Bon en fait j'ai trouvé.

    Le problème venait d'une autre web part que celle que je faisais.

    Cette autre web part avait un UpdatePanel également mais n'avait pas le UpdateMode="Conditional". Le fait de mettre cette propriété a retiré le problème.

    • Marqué comme réponse Florin Ciuca vendredi 20 juillet 2012 08:40
    jeudi 19 juillet 2012 07:34

Toutes les réponses

  • Bonjour,

    De quel type de webpart s'agit-il?

    Essayer d'ouvrir la page de maintenance (ajouter simplement ?contents=1 à la fin de votre url)

    Si le webpart que vous essayez d'ajouter se trouve déjà dans la page, supprimer le et refaite le test ;-)

    Pascal P
    http://sharepoint-afterwork.fr
    Nouveaux site en FR
    Twitter: @PascalPoeck

    mardi 3 juillet 2012 08:25
  • C'est une web part sans aspx.

    Supprimer et remettre la web part ne change rien.

    Par contre j'ai remarqué que dans le mode édition de la page la web part fonctionne bien comme je veux sans avoir le problème de l'updatepanel. Mais une fois revenu dans le mode normal de consultation de la page le problème réapparaît.

    mardi 3 juillet 2012 08:41
  • Strange effectivement...

    Il ne manquerait par hasard pas un "r" dans votre dernière ligne?

    _updatePanel.ContentTemplateContainer.Controls.Add(_ul);

    (_url)


    Pascal P
    http://sharepoint-afterwork.fr
    Nouveaux site en FR
    Twitter: @PascalPoeck

    mardi 3 juillet 2012 08:55
  • Non c'est bien _ul : _ul = new HtmlGenericControl("ul");

    Ce qui est bizarre aussi, c'est que dans le message d'erreur, le nom de l'updatepanel qui n'est pas trouvé ne contient pas l'ID que je lui ai donné.

    • Modifié Alazrian mardi 3 juillet 2012 09:27
    mardi 3 juillet 2012 09:25
  • <asp:Timer ID="TmLoading" runat="server" Interval="100" Enabled="false" OnTick="TmLoading_Tick" />
    <asp:UpdatePanel runat="server" ID="PnCollabSites" UpdateMode="Conditional">
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="TmLoading" EventName="Tick" />
        </Triggers>
        <ContentTemplate>
            <div runat="server" id="DivLoading" style="text-align: center; margin-top: 10px;">
                <asp:Image ID="ImgLoading" ImageUrl="/_layouts/IMAGES/gears_anv4.gif" runat="server" />
            </div>
            <div runat="server" id="DivLoaded"
    ...
    </div>
    </asp:UpdatePanel>
    J'ai essayé de refaire la webpart en visual webpart mais le problème reste le même, je n'ai vraiment pluis aucune aidée de comlment faire marcher ça.
    • Modifié Alazrian lundi 16 juillet 2012 15:43
    vendredi 6 juillet 2012 09:21
  • Bonjour,

    Je n'arrive pas à reproduire votre problème sur ma VM avec le même code. J'ai juste affiché la date et l'heure du rafraîchissement de l'updatePanel dans un label.

    Une piste de réflexion (?) :

    --> cet UpdtaePanel n'est-il pas inclut dans un autre updatePanel  (MasterPage ou page Layout) avec un UpdateMode à Auto?

    EDIT :

    Si je mets dans ma masterPage un updatePanel autour du ContentPlaceHolder PlaceHolderMain, je reproduis votre errreur. En mettant l'updateMode à conditionnal tout rendre dans l'ordre.

    NicoBzh

    vendredi 6 juillet 2012 14:36
  • Non il n'y a que ce code là dans ma web part, rien avant rien après.

    J'ai remarqué aussi que quand j'enlève le trigger et le mode conditionel, le problème n'existe pas, mais le raffraîchissement se fait sur toute la page au lieu d'être seulement sur l'updatepanel.


    • Modifié Alazrian lundi 16 juillet 2012 15:44
    lundi 16 juillet 2012 15:43
  • Bon en fait j'ai trouvé.

    Le problème venait d'une autre web part que celle que je faisais.

    Cette autre web part avait un UpdatePanel également mais n'avait pas le UpdateMode="Conditional". Le fait de mettre cette propriété a retiré le problème.

    • Marqué comme réponse Florin Ciuca vendredi 20 juillet 2012 08:40
    jeudi 19 juillet 2012 07:34