1

現在、残念ながら更新パネルと JavaScript からの Web サービス Web/スクリプト メソッドの呼び出しが混在しているページがあります。

更新パネル アクティビティのスピナーを表示する更新進行状況コントロールがあります。しかし、Web サービス呼び出しを行うと、表示されません。

ユーザー エクスペリエンスは一貫している必要があるため、このユーザビリティの問題をどのように解決することをお勧めしますか? updatecontrol の div を非表示および表示するには、各 Web サービス呼び出しにフックする必要がありますか?

4

1 に答える 1

0

最初のページ レンダリングと同期ポストバックでは、UpdateProgress コントロールは表示されません。そのため、UpdatePanel が非同期で更新されていることを確認してください。

また、リンクされたページの下部には、スピナーがいつ表示されるかを制御するために必要なものが表示されます。

そうは言っても、これは問題を解決するための Microsoft のゴールデン パスです。ASP.NET Ajax ライブラリのどこかにバグがあり、スピナーが表示されない可能性があります。

すべてのオプションを使い果たした場合は、自分でやってみてください。beginRequest および endRequest JavaScript メソッドをオーバーライドすると、スピナーがいつ表示されるかを制御できます。おそらく、これらの関数の以前のコードを次のような変数に保存します。

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

確かに、このコードは window.onload に新しい関数を追加するためのものですが、beginRequest と endRequest にも同じ手法を使用できます。

お役に立てれば

于 2009-02-04T19:14:55.817 に答える