2009-06-22 5 views
2

J'ai une page ASP.NET qui contient un contrôle de bouton asp.net. Lorsque l'utilisateur clique sur le bouton, la page effectue des calculs puis se ferme, mais lorsque je clique sur le bouton lors de la publication, la page affiche un écran vide. Je veux montrer un message de chargement au lieu de cela. J'ai utilisé javascript pour montrer un div qui était caché initialement et montré quand l'utilisateur clique sur le bouton, mais quand le retour se produit, l'écran devient vide. Une idée de comment montrer le message de chargement dans ce scénario?ASP.NET, Affichage du message de chargement pendant la publication

Merci d'avance.

Répondre

2

Avez-vous vraiment besoin pour éviter ASP.NET ajax ou JQuery?

Si oui: déplacez le traitement lourd dans un IFRAME invisible. Actionnez votre formulaire sur l'IFRAME invisible ou utilisez javascript pour définir l'emplacement de l'IFRAME.

Votre javascript de 'chargement' s'affichera correctement. Lorsque le formulaire à l'intérieur de l'IFRAME se termine, il suffit de sortir un certain javascript pour indiquer au «parent» d'aller à l'emplacement ou de l'actualiser.

+0

J'ai jQuery dans mon projet. Comment puis-je utiliser jQuery pour cela? – Shyju

+2

collecter toutes les données que vous devez traiter, et POST (http://docs.jquery.com/Ajax/jQuery.post) à une page ASPX qui effectue le traitement. le jQuery.post a un rappel pour vous dire quand la page est terminée. l'objet ajax a des événements ajaxStart/ajaxComplete. vous pouvez les utiliser pour activer/désactiver votre message de chargement. – russau

1

Fondamentalement, vous ne pouvez pas utiliser seulement les publications. Le navigateur dessine l'écran blanc en attendant une réponse du serveur. Ce message que vous avez configuré pour afficher lorsque l'utilisateur clique sur un bouton était l'approche correcte (un si bon travail).

Mais le navigateur a attiré l'écran blanc, en pensant "Oh, mon garçon, je suis sur le point d'obtenir une réponse!" et ensuite attendu plus longtemps que vous le pensez approprié. La seule chose que vous pourriez essayer serait, dans la réponse, faire la première chose à diffuser au navigateur une sorte de message de chargement que le navigateur peut afficher lors du chargement du reste (comme l'écran de chargement de Gmail). Mais personnellement, je pense que vous pourriez passer votre temps à faire d'autres développements.

Vous pouvez essayer d'autres techniques avec AJAX.

2

Si vous utilisez Ajax pour publier le formulaire de manière asynchrone, vous pouvez utiliser le contrôle UpdateProgress. Voici un lien vers un article expliquant comment implémenter la fonctionnalité:

How to make a Gmail-like loading indicator with ASP.NET Ajax

+0

Je n'utilise pas ASP.NET AJAx – Shyju

+0

Y a-t-il une raison pour laquelle vous ne voulez pas utiliser Ajax? C'est assez simple à mettre en place, d'autant plus que vous utilisez déjà asp.net. – DaveK

Questions connexes