2013-01-15 72 views
0

我是AJAX新手,想知道我是否以正確的方式接近事物。ASP.Net頁面加載更新更新面板

我建立的頁面實際上只是一個進度頁面。即從頁面加載調用進程,並向頁面添加消息以顯示結果,然後運行另一個進程,併爲該進程的結果添加新消息等,最多10個進程可以按順序運行,並且存在沒有用戶交互。我不想屏幕閃爍後,每次更新的消息,所以我認爲阿賈克斯

我已經實現了這個似乎很奇怪的方式.....

  • 設置UpdatePanel與它的隱藏按鈕
  • 上的代碼創建一個ClientScriptManager頁面加載後面調用JavaScript函數(在第1次)
  • 在JavaScript函數「點擊」按鈕
  • 執行第一進程的C#代碼隱藏在Button_Click方法
  • 使用ClientScriptManager在C#中Invoke的JavaScript單擊按鈕再次
  • 做下一道工序上的C#代碼隱藏在Button_Click方法

我寧願剛開始的過程C#頁面加載並更新UpdatePanel而不閃爍。

* * *這裏是使用與睡眠線程模擬將要發生的過程中你的建議,我的最新的代碼,但它不是在實時更新....即重新計算報價和存儲數據出現後,兩個說明已完成。

  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(); 
+0

顯示您的代碼。 – Buzz

+0

那麼,你的問題是什麼? –

+0

達米安,只是我是否明白了這一點....我的意思是它的作品,但它會引起眉毛? – Adam

回答

0
  1. 掉落一個更新面板上&頁面設置它的更新模式 條件
  2. 內更新面板,放置標籤/文本控制您的處理消息
  3. 內部頁面加載事件執行每個進程&顯示一條狀態消息,然後從代碼隱藏更新您的updatePanel,如

  4. Drop an UpdateProgre SS以顯示進展圖像在處理

    if (Process1()) 
        lblStatus.Text = " Process 1 completed.; 
    UpdatePanel1.Update(); 
    
    // Do this for Process 2 
    
    // Do this for Process 3 etc. 
    

唯一的問題我有是,如果進程2就是在流程1 &失敗depedant?你必須自己管理回滾。再次,這只是生,但你明白了。

+0

我正在尋找進度信息是實時的....如果我把頁面加載處理不是頁面加載必須在屏幕顯示之前完成?對不起,如果我錯過了這一點.... – Adam

+0

是的,他們將是實時的,但它取決於您的要求。如果您需要首先專門加載控件,則還可以嘗試「LoadComplete」事件。 HTTP:// MSDN。microsoft.com/en-us/library/ms178472%28v=vs.100%29.aspx#lifecycle_events –

+0

達米恩感謝您的幫助,迄今爲止我正在使用您的位取得進展...這裏是我的代碼現在在從頁面回發 – Adam