私はAJAXを初めて使用し、正しい方法で物事に取り組んでいるかどうか疑問に思いました。
私が作成しているページは、文字通り単なる進捗ページです。つまり、プロセスがページの読み込みから呼び出され、結果を表示するメッセージをページに追加してから、別のプロセスを実行し、そのプロセスの結果などの新しいメッセージを追加します。最大10個のプロセスを順番に実行できます。ユーザーの操作はありません。更新メッセージが表示されるたびに画面がちらつくことを望まなかったので、Ajaxについて考えました。
私がこれを達成した方法は奇妙に思えます.....
UpdatePanel
隠しボタンを使用してセットアップ- ページ読み込みの背後にあるコードを作成し
ClientScriptManager
て、Javascript関数を呼び出します(初回) - Javascript関数のボタンを「クリック」します
Button_Click
メソッドの背後にあるC#コードで最初のプロセスを実行しますClientScriptManager
JavascriptのC#でを使用してInvoke
、ボタンをもう一度クリックしますButton_Click
メソッドの背後にあるC#コードで次のプロセスを実行します
UpdatePanel
C#ページの読み込みでプロセスを開始し、フラッシュせずに更新したいだけです。
* * *これは、実行されるプロセスをエミュレートするスリープスレッドでの推奨事項を使用した最新のコードですが、リアルタイムでは更新されません。つまり、見積もりの再計算とデータの保存は、両方の手順が完了した後に表示されます。
Literal literal1 = new Literal();
literal1.Text = "Recalculating Quotation <br/>";
literal1.ID = "Message1";
updpnlSubmit.ContentTemplateContainer.Controls.Add(literal1);
updpnlSubmit.Update();
Thread.Sleep(10000);
Literal literal2 = new Literal();
literal2.Text = "Storing Data<br/>";
literal2.ID = "Message2";
updpnlSubmit.ContentTemplateContainer.Controls.Add(literal2);
updpnlSubmit.Update();