2011-11-27 3 views
0

Je cherche une solution à mon problème depuis deux jours et je n'ai rien trouvé qui puisse aider. J'ai deux pages: la page 1 et page 2 Page1 contient des paramètres qui seront envoyés à page2 et un bouton « Créer » Page2 contient le GridView et page_load jeChargement de l'image lors du chargement d'un gridview à l'exécution

GetParameters() ; // extract parameters 
PrepareParameters(); // prepare local variable 
DataTable dt = CreateDataTable(); // create the BoundField/Columns based on prepared local variables 
myGridView.DataSource = dt; 
myGridView.DataBind(); 

Mon problème est que la méthode PrepareParameters() prend du temps en raison de l'énorme quantité de données, même si elle est optimisée. Lorsque je clique sur le bouton "Créer", le navigateur ne passe pas à la page2 mais à la place il ne répond pas et reste dans la page1 et l'utilisateur ne sait pas ce qui se passe. Donc je me demande comment rediriger le navigateur vers page2 et montrer à l'utilisateur une animation de chargement sur la grille jusqu'à ce que le PrepareParameters() finisse de traiter les données et affiche le GridView une fois terminé? Merci pour votre réponse.

Répondre

0

Vous pouvez utiliser Javascript pour le faire. Obtenez n'importe quelle image de chargeur que vous préférez, il y en a beaucoup disponibles sur le réseau, google it

mettez cette image en haut/bas de la grille, attribuez-lui un identifiant et définissez la propriété par défaut Visible = false. Maintenant sur le bouton, cliquez sur javascript pour rendre cette image visible.

Exemple de code

<html> 
<head> 
<script type="text/javascript" language="JavaScript"> 

function Loading() { 
    document.getelemanebyId('Img').visibility = visible; 
} 
</script> 
</head> 
<body> 

<form action="" method="POST" id="myForm"> 

//Gridview control here 
<img id="Img" src="give image file path" runat="server" visible="false"/> 
<button name="Create" onClientClick="Loading();" runat="server" > 

</form> 
</body> 
</html> 
+0

Salut Pramodtech, Merci pour votre réponse. En fait, j'ai vu cette solution partout et je pense que cela ne correspond pas à mon problème, mais néanmoins je l'ai essayé et ne fonctionne pas. Le navigateur reste sur la page 1 jusqu'à ce que le navigateur soit terminé. –

+0

oui navigateur restera sur la même page seule chose chargement de l'image sera affichée de sorte que l'utilisateur ne sera pas confus sur ce qui se passe. Une autre chose que vous pouvez faire est de garder la grille en div et de masquer cette grille en utilisant le javascript mentionné ci-dessus. Je ne pense pas que vous pouvez rediriger vers la page suivante jusqu'à ce que l'opération de la page 1 soit terminée. – pramodtech

+0

mais PrepareParameters() est une méthode dans page2 et la grille aussi? –

Questions connexes