Comment arrêter UpdatePanel de provoquer la page de publication?
Je suis à l'aide .NET 3.5 et construire des pages à l'intérieur de la Communauté Server 2008 cadre.
Sur l'une des pages, je suis en train d'essayer d'obtenir un UpdatePanel de travail.
J'ai pris un échantillon directement à partir de ASP.NET site web, mise à jour de temps dans un UpdatePanel à l'heure actuelle en cliquant sur un bouton, mais pour une raison quelconque, quand j'essaie d'exécuter la fonction de l'ensemble de la page est rafraîchie.
Voici ce que j'ai:
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Panel refreshed at " + DateTime.Now.ToString();
Label2.Text = "Panel refreshed at " + DateTime.Now.ToString();
}
<asp:ScriptManager ID="ScriptManager1" runat="server"/>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<fieldset>
<legend>UpdatePanel</legend>
<asp:Label ID="Label1" runat="server" Text="Panel created."></asp:Label><br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</fieldset>
</ContentTemplate>
</asp:UpdatePanel>
Chaque fois que je clique sur le bouton, assurez-vous que le panneau de mises à jour - mais l'ensemble de la page des postes de retour! Je peux voir la page entière à clignoter. Que diable suis-je fais de mal?
Je suis à l'intérieur d'un imbriquée Masterpage, mais je ne suis pas sûr si c'est un problème. Pourrait-il y avoir quelque chose dans cette Communauté infrastructure de Serveur que j'utilise qui provoque tous les événements de publication?
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayez de régler une
Button1
comme unAsyncPostBackTrigger
dans les Déclencheurs de la section? Définir laChildrenAsTriggers
propriététrue
et laUpdateMode
propriétéConditional
.Je ne vois pas de Label2 dans l'exemple de code ci-dessus. Si Label2 est situé à l'extérieur de l'UpdatePanel, une actualisation de la page entière va se produire, parce que c'est ce qui est requis pour la page pour mettre à jour correctement Label2.
Par défaut, les UpdatePanels ne dynamiquement actualiser le contenu, lorsqu'il est déclenché par les contrôles à l'intérieur de eux. Si vous avez besoin de faire quelques amateur de mises à jour, dire un bouton à l'extérieur de panneau provoquant l'actualisation ou une étiquette à un autre panneau, pour être mis à jour, alors vous devez définir l'attribut Conditionnel sur votre UpdatePanel(s) et de faire quelques mise à Jour manuelle des appels dans votre code.
Une autre raison possible est que si la page a
ClientIDMode="static"
, puis les contrôles que vous attendez pour actualiser seulement l'UpdatePanel permettra d'actualiser l'ensemble de la page.Pour résoudre le problème, il vous suffit de définir
ClientIDMode="AutoID"
sur la /les commande(s) qui doit déclencher l'UpdatePanel publier.Ensemble
ChildrenAsTriggers="true"
sur votre contrôle UpdatePanel."Par défaut, les UpdatePanels ne dynamiquement actualiser le contenu, lorsqu'il est déclenché par les contrôles à l'intérieur d'eux."
Sinon l'ensemble de la page est actualisée! C'est le point!
Si vous avez un vieux projet qui a été mis à niveau à partir .net framework v1.1, puis supprimez cette ligne à partir de votre site web config pour le faire fonctionner: