2013-12-12 17 views
1

在按鈕上單擊,我顯示一個標籤,顯示消息「請稍候」,我正在執行Thread.sleep 3秒鐘,然後再響應另一個響應頁。代碼如下:label.visible = true在按鈕上點擊不起作用

 lblmsg.Visible = true; 

     Thread.Sleep(3000); 

     Response.Redirect("demo2.aspx"); 

我的理解是,標籤必須顯示,然後進程等待3秒,然後重定向?讓我知道爲什麼這不起作用,什麼是解決方法。

+0

我相信你試圖做一個必須在客戶端完成的「技巧」,用javascript。無論是在睡眠中,還是在進行重定向時,頁面都不會再次呈現,並且msg會被隱藏起來。 – Aristos

回答

2

這是服務器端代碼,因此lblmsg.Visible = true;將標籤設置爲可見,但該標籤尚未發送至瀏覽器,因此終端用戶無法看到該標籤。

這裏發生了什麼:

  • 用戶點擊頁面的瀏覽器
  • 天冬氨酸接收請求,並開始運行的頁面代碼
  • 服務器標籤上有它的Visible屬性設置爲true
  • 服務器等待
  • 服務器將重定向消息發送回瀏覽器
  • 瀏覽器接收到重定向

您發送之前,你的請求到服務器,您可以考慮隱藏和顯示上使用jQuery在瀏覽器端的消息 - 這樣的事情(或者替換按鈕鏈接):

<script> 
    $(document).ready() { 
     $("#someLink").click(function() { 
      $("#waitMessage").show(); 
     }); 
    }); 
<script> 

<p id="waitMessage" style="display:none;">Please wait</p> 

<a id="someLink" href="pagewithwait">Do stuff</a> 
+0

如何通過其他方式實現我想要的功能......當用戶單擊按鈕時,我需要顯示一條消息,如「處理中請稍候」,然後在幾秒鐘內重定向到另一頁面..任何想法wud b讚賞。 – Phani

+0

@Phani你需要使用JavaScript來做到這一點。 – MikeSmithDev

+0

我已更新答案,並添加樣本jQuery –