2010-09-17 6 views
0

J'ai une liste déroulante qui montre des noms de fichiers et quand l'index est changé, le fichier slected est offert pour le téléchargement. J'ai aussi un bouton qui crée de nouveaux fichiers ... maintenant, après qu'un nouveau fichier a été créé, le nouveau nom de fichier devrait également apparaître dans la liste déroulante. Cela fonctionne bien, quand je rafraîchis la page, mais ce n'est pas ce que je veux.ASP.NET - recharger une liste déroulante?

J'ai essayé de mettre la liste déroulante dans un panneau de mise à jour et de lui donner l'ID de bouton de création de fichier, il a échoué ... est-ce le bon apporach ou est-il un moyen plus facile?

Merci!


Je ne peux pas juste le faire fonctionner, ceci est mon code:

<asp:UpdatePanel ID="UP_ExportInvoices" runat="server" UpdateMode="Always"> 
    <ContentTemplate> 
     <asp:DropDownList ID="DDL_ExportFileDownLoad" runat="server" AutoPostBack="true" 
         OnSelectedIndexChanged="DDL_ExportFileDownLoad_SelectedIndexChanged"> 
     </asp:DropDownList> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Je pensais que si le UpdateMode est réglé sur Toujours, que le contenu est toujours mis à jour? J'ai aussi ce bouton (asp: ImageButton) qui réside hors de ce UpdatePanel. J'ai essayé d'ajouter un déclencheur à ce bouton, mais cela n'a pas fonctionné. Que fais-je tort? Jusqu'à présent, je ne suis pas en mesure de faire des exceptions ou la liste déroulante n'est pas mise à jour.

Merci :)

+0

Afficher le code ... –

+0

Le bouton qui crée des fichiers est-il également placé dans le UpdatePanel? –

+0

Non, il est placé à l'extérieur ... – grady

Répondre

0

Si vous créez le fichier dans la même page, puis juste ajouter le nom de fichier dans le menu déroulant. Pouvez-vous faire ce tour dans votre application?

0

Est-ce que vous appuyez sur le bouton pour afficher la page? Si oui, vous devez redéfinir la liste déroulante après avoir créé le fichier dans le gestionnaire de clic de bouton.

Si le bouton fait post-retour partiel (dire qu'il est placé dans UpdatePanel) au serveur, ci-dessus sera toujours applicable, mais la liste déroulante devrait également être en UpdatePanel.

+0

La reliure ne fonctionne pas, il va l'ajouter à la liste déroulante, oui, mais l'élément n'est pas affiché jusqu'à ce qu'une actualisation de la page ait lieu. – grady

+0

Que diriez-vous de mettre le bouton et le menu déroulant dans le même UpdatePanel? Si votre bouton est à l'extérieur, fait-il un postback normal ou partiel? – VinayC

0

Vous devez vous assurer que le bouton est un déclencheur pour le panneau de mise à jour ou qu'il s'agit d'un enfant.

Voici une explication complète:

http://www.asp.net/ajax/tutorials/understanding-asp-net-ajax-updatepanel-triggers

+0

J'ai essayé, mais je reçois ce message: ** Contrôle avec ID '...' étant enregistré par RegisterAsyncPostBackControl ou RegisterPostBackControl doit implémenter soit INamingContainer, IPostBackDataHandler, ou IPostBackEventHandler. ** Quel est le problème avec le bouton? C'est un LinkButton ordinaire – grady

0

Vous devez placer le bouton dans le UpdatePanel. Cela entraînera une publication partielle et la liste déroulante devrait se relier, affichant le nouvel élément. Vous pouvez également inclure du code JavaScript dans votre page, ce qui ajoute le nouvel élément à la liste déroulante du côté client, mais cela peut parfois poser des problèmes avec la validation automatique des événements d'ASP.

Questions connexes