2017-05-07 1 views
0

Je travaille sur un projet de formulaires Web C# asp.net. Il a deux pages maîtres. J'ai avoir un contrôle utilisateur qui lit les données de la base de données, crée une liste non-ordonnée dans la chaîne html et remplit un espace réservé avec il. Ce contrôle utilisateur doit être automatiquement actualisé toutes les 2 minutes. J'ai inclus cette commande usercontrole sur le maître page . J'ai le code suivant pour actualiser le contrôle d'utilisateur , que j'ai obtenu par une autre réponse de stackoverflow. Le problème est que l'ensemble de la page maître se rafraîchit, et je ne sais pas pourquoi.La mise à jour partielle ne fonctionne pas avec les pages maîtres

Is there a way to make that only the user control which has the UpdatePanel 
refreshes? 


    Outer Master Page: 


    <body> 
    <form id="frmMain" role="form" method="post" runat="server"> 
    <div> 
     <uc2:PendingOrders runat="server" ID="PendingOrders" /> 
    </div> 
    <asp:ContentPlaceHolder ID="MainBodyContent" runat="server"> 
    </asp:ContentPlaceHolder> 
    </form> 
</body> 

User Control: 

<asp:ScriptManager ID="myScriptManager" runat="server" 
EnablePartialRendering="True"></asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode = "Conditional" 
    runat="server"> 
<ContentTemplate> 

    <asp:Timer ID="Timer1" runat="server" Interval="20000" 
    OnTick="Timer1_Tick"></asp:Timer> 

    <asp:PlaceHolder runat="server" id="lblMyOrders"></asp:PlaceHolder> 

    </ContentTemplate> 
    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
    </Triggers> 
    </asp:UpdatePanel> 

    User Control Code behind: 

    protected void Timer1_Tick(object sender, EventArgs e) 
    { 
     //This method creates the html string with data as an unordered list 
     and 
     //populates asp:PlaceHolder inte updatepanel 
     GetData(); 
    } 

Répondre

0

Le contenu de UpdatePanel1 sera mis à jour par Timer1_Tick.
"actualisation complète de la page maquette" signifie que la page principale "Load" sera appelée pendant que Timer1 a été déclenchée? UpdatePanel affiche toujours le serveur backpage de la page entière et ne restitue que le contenu de UpdatePanel1.

+0

Oui, c'est ce qui se passe. D'abord, il va à l'événement page_load de la page maître, puis au Timer1_Tick. Pour cette raison, la page scintille. Je veux l'éviter. – Massey

+0

uniquement UpdatePanel1 scintille *** [Présentation du cycle de vie de la page ASP.NET] (https://msdn.microsoft.com/en-us/library/ms178472.aspx) – Rainmaker

+0

La page entière se recharge et scintille! – Massey