2009-02-04 5 views
0

En ce moment j'ai une page où malheureusement il y a un mélange de panneaux de mise à jour et d'appels à webservice web/script méthodes de javascript.Affichage d'un spinner pour un appel de service Web (Like UpdateProgress Control)

J'ai un contrôle de progression de mise à jour qui montre un spinner pour l'activité du panneau de mise à jour. Mais quand je fais des appels webservice il n'est pas affiché.

Comment recommanderiez-vous que je résolve ce problème d'utilisabilité puisque l'expérience de l'utilisateur doit être cohérente. Dois-je me connecter à chaque appel webservice pour cacher et afficher la div updatecontrol?

Merci

Répondre

0

Eh bien, for initial page rendering and for synchronous postbacks, the UpdateProgress control is not displayed. Donc, assurez-vous que votre UpdatePanel est mise à jour de manière asynchrone. En outre, en bas de la page liée, vous voyez ce que vous devez avoir pour contrôler le moment où le compteur apparaîtra.

Cela dit, c'est le chemin d'or de Microsoft à la résolution de votre problème. Il est possible qu'il y ait un bug quelque part dans la bibliothèque ASP.NET Ajax qui empêche le spinner de s'afficher.

Si vous avez épuisé toutes les options, faites-le vous-même. Si vous substituez les méthodes JavaScript beginRequest et endRequest, vous pouvez contrôler quand le spinner apparaît. Je serais probablement SAUVEGARDER tout code précédent dans ces fonctions à des variables comme ceci:

function addLoadEvent(func) 
{ 
    var oldonload = window.onload; 
    if(typeof window.onload != 'function') 
    { 
     window.onload = func; 
    } 
    else 
    { 
     window.onload = function() 
     { 
      oldonload(); 
      func(); 
     } 
    } 
} 

Maintenant, d'accord, ce code est d'ajouter une nouvelle fonction à window.onload, mais la même technique peut travailler pour BeginRequest et endRequest .

Espérons que cela aide

Questions connexes