0

gridviewボタンのクリック後にデータがロードされている間に、アニメーション画像を表示しようとしています。ローカルホストでは問題なく動作しますが、デプロイするとうまくいきません。私は投稿を検索しましたが、最も一般的な間違いと思われるものは何も犯していません. updateprogressなどの中にを入れますupdatepanel。しかし、私はmasterpage- を使用していますが、 には がありmasterpageませんscriptmanager。実稼働環境とローカルホストを比較すると、ビュー ソース ページに次のような違いがあることに気付きました。

localhost (動作する場所) では、ページの下部に次のように表示されます。

[CDATA[
Sys.Application.initialize();
Sys.Application.add_init(function() {
    $create(Sys.UI._UpdateProgress, {"associatedUpdatePanelId":null,"displayAfter":500,"dynamicLayout":true}, null, null, $get("ctl00_ContentPlaceHolder1_UpdateProgress1"));
});

本番環境(機能しない場合)では、これが私が見るすべてです:

Sys.Application.initialize();
4

2 に答える 2

0

プロジェクトを VS2008 から VS2010 に変換した後、私は本当に苦労しました。UpdateProgress が突然動作を停止しましたが、これは VS2008 では問題ありませんでした。答えを探すのに午後を費やし、これとあれこれを実験して、最終的にScott Gu の投稿から何がうまくいかなかったのかを見つけました。

これは、自動生成された web.config エントリ 'xhtmlConformance mode="Legacy"' でした。

これを無効にすると、再び機能し始めました。あなたには当てはまらないかもしれませんが、同じ問題に苦しんでいる人には当てはまります。

ハッピーコーディング

于 2010-10-08T00:43:40.807 に答える
0

これは理想的な解決策ではないかもしれませんが、javascript を使用するだけで、アニメーション画像を show() または hide() することができます。次の JavaScript 関数を使用する (そして UpdateProgress コントロールを取り除く) とうまくいくはずです。

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest); 
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest); 

 function beginRequest(sender, args) {
  document.getElementById('myImageElement').style.display = 'block';  
}

 function endRequest(sender, args) {
  document.getElementById('myImageElement').style.display = 'none';  
}

これはすべてのポストバックで発生することに注意してください。sender パラメータを使用して、ポストバックが呼び出された要素を推測し、正しい updatepanel がヒットした場合にのみ表示を実行する必要がある場合があります。これらのイベントは、各 UpdatePanel ポストバックの開始時と終了時に (それぞれ) 発生します。幸運を。

于 2010-10-08T01:00:06.290 に答える