2010-05-23 3 views
1

J'ai créé un contrôle de serveur asp.net personnalisé. Cela fonctionne bien sur une page asp.net régulière et comme un objet DOM à l'intérieur du navigateur. Mais je n'ai jamais utilisé le UpdatePanel auparavant et maintenant j'essaie de m'assurer que ce contrôle fonctionne également. Ce n'est pas le cas. Si j'ajoute mon contrôle à la page en dehors d'un panneau de mise à jour et que je clique sur le bouton intérieur d'un panneau (déclencheur), tout fonctionne correctement. Mais si je place mon contrôle à l'intérieur du panneau de mise à jour et que je clique à nouveau sur ce bouton, le contrôle "disparaît" complètement de la page. Je peux toujours voir mon contrôle dans le débogueur javascript et la mise à jour, ce qui signifie que l'objet lui-même est toujours dans DOM. Il semble que le panneau "cache" l'élément div externe de mon contrôle pour une raison quelconque. J'ai essayé d'appeler la méthode Update() du panneau sur le gestionnaire de clic de bouton, mettre UpdateMode du panneau à la fois à conditionnel et toujours. Tous avec le même résultat. Comment puis-je résoudre ce problème? Je vous remercie!Le contrôle du serveur personnalisé disparaît de la page lorsque UpdatePanel est mis à jour.

+0

pourrait vous coller le code ASPX –

Répondre

0

Publication d'un autre ordinateur, en réponse à TriLLi: Voici mon code aspx. Encore une fois, le UpdateMode peut être Conditionnel ou Toujours - le résultat est le même, le cc1: WebControl disparaît mais l'étiquette lblInfo est là, entièrement fonctionnelle après le clic btnTest.

<form id="form1" runat="server"> 
<asp:scriptmanager ID="scrManager" runat="server"></asp:scriptmanager> 
<div> 
    <asp:updatepanel ID="pnlTest" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
         <div class="designer"> 
       <cc1:WebControl ID="ceFirst" runat="server" decisionxmlfilevirtualpath="/Person.config" autolist="User" help="Off"></cc1:WebControl> 
        </div> 
      <div class="designer"> 
       <asp:label ID="lblInfo" runat="server" forecolor="red"></asp:label> 
      </div> 
      <div class="designer"> 
       <asp:button ID="btnTest" runat="server" width="100" text="Test" /> 
      </div> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="btnTest" EventName="Click" /> 
     </Triggers> 
    </asp:updatepanel> 
</div> 
</form> 
+0

Je ne suis pas sûr à ce sujet, mais utilisez si votre contrôle javascript pour vous montrer besoin de rappeler le code javascript lorsque le panneau de mise à jour se termine rappel, essayez d'ajouter dans votre code derrière si le panneau de mise à jour est dans le rappel ScriptManager.RegisterStartupScript (.... –

+0

Oui, je suis conscient de cela et je fais cela.Je suis sûr qu'il me manque quelque chose de très simple ici.Merci, cependant – Sasha

+0

Guys. S'il vous plaît? :) – Sasha

Questions connexes