Panneau de mise à jour pas de mise à jour de contenu
J'ai essayé ce depuis un certain temps, mais je ne suis pas en mesure de les contourner. Voici le code de la page aspx affichage:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
Test<br />
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
</asp:DropDownList>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</form>
</body>
</html>
Voici le code pour l'événement click button1:
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles DropDownList1.SelectedIndexChanged
Label1.Text = DropDownList1.SelectedIndex
UpdatePanel1.Update()
End Sub
End Class
Pourriez-vous s'il vous plaît dites-moi ce que j'ai raté.
OriginalL'auteur surpavan | 2011-12-01
Vous devez vous connecter pour publier un commentaire.
Définir la autopostback à true dans le menu déroulant.
Le vrai moyen: chaque fois que la valeur dans la liste déroulante des changements, une publication sur le serveur aura lieu.
Mais écouter Tim Schmelter réponse. Si la liste ne changera pas, c'est une bonne idée de la mettre à l'extérieur du panneau de mise à jour et la mise à jour du panneau doit être déclenché asynchrone par le menu déroulant (si vous ne définissez pas un déclencheur pour le panneau de mise à jour, chaque publication sera mise à jour de votre updatepanel). Si le contenu de la liste déroulante change, le mettre à l'intérieur de l'updatepanel.
Mais comme je l'ai dit, je ne suis pas en utilisant que pour un temps long, son une bonne idée de vérifier tout ce que je dis sur le sujet. =p
PS: mise à Jour de Microsoft Panneaux sont faciles à développer, mais de rendre votre site très lent. Essayons d'en apprendre davantage sur le réseau des services web et jQuery.
Je vous remercie beaucoup. Il est utile.
OriginalL'auteur
Vous devez placer votre Scriptmanager avant tous les contrôles qui vont l'utiliser.
Donc le placer au-dessus de votre contrôle dropdownlist.
Vous devez également définir la propriété AutoPostBack de vrai sur la dropdownlist pour la selectedindexchange cas d'incendie.
OriginalL'auteur Ed B
Vous avez oublié de définir
AutoPostback
àTrue
sur votre DropDownList. La valeur par défaut estFalse
.http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.autopostback.aspx
Et si vous voulez déclencher Async-Publication dans votre UpdatePanel si l'Utilisateur change la DropDownList, vous devez spécifier un AsyncPostbackTrigger pour l'UpdatePanel, parce que la liste est en dehors d'elle.
En dehors de cela, vous devez placer le ScriptManager au début comme Ed a dit.
Regardez ici pour plus d'infos sur ASP.NET-Ajax:
http://msdn.microsoft.com/en-us/magazine/cc163354.aspx
OriginalL'auteur Rango
Ci-dessous est le balisage correct, il suffit de mettre à votre page:
OriginalL'auteur Elias Hossain