ディレクトリ構造に基づいてツリービューにデータを入力する必要があるasp.netページがあります。ノードの作成中にユーザーに空白のページを見つめるのではなく、画像の読み込みにUpdateProgressを使用しようとしています。
インターネット上のさまざまなスレッドを検索することで、私が試したいくつかの異なることがわかりました。どちらにも、解決できないような独自の問題があります。
オプション1は、次のjavascriptを使用します。
function pageLoad() {
__doPostBack('btnBuildTree', '');
}
このイベントは自動配線されているため、body要素にonloadタグを追加する必要はありません。私のコードビハインドをテストするには、次のようになります。
protected void btnBuildTree_Click(object sender, EventArgs e)
{
System.Threading.Thread.Sleep(5000);
// minor code here to know it did something
}
このように設定すると、ページが読み込まれ、更新の進行状況が希望どおりに実行されます。btnBuildTree_Clickが終了すると、UpdatePanelが更新され、すぐに別のポストバックが開始され、javascript pageLoad()関数が起動されます。これにより、btnBuildTreeがポストバックします。
オプション2の変更点は1つだけで、それはjavascriptに対するものです。
function buildTree() {
__doPostBack('btnBuildTree', '');
}
そして、私はこのタグを追加します:
<body onload="buildTree()">
この設定では、ページが読み込まれ、btnBuildTree_Clickイベントが発生してすべての作業が実行されます。終了しても、別のポストバックが発生しないため、ループは発生しません。これの唯一の欠点は、UpdateProgressが表示されないため、「ロード画面」を提供しようとする目的全体が無効になることです。
私は単に何かが欠けていると信じており、誰かがそれが何であるかを指摘してくれることを願っています。
ありがとうございました!