輕鬆實現頁面提交時,顯示“提交中..” (轉帖)

我也從網上看了不少文章,但沒有真正意義上的進度條,有的文章寫明是“真正意義”上的,其實也不是真正意義上,要真正意義上顯示進度情況,恐怕不太現實,因爲提交到,還剩多少,連機器都難於把握,因此,覺得可能性不大。 第二,我們其實也未必一定要顯示進度,我倒是隻想提示“提交中..”這樣的效果即可,在顯示提交中時,界面上其他的東西都不允許進行點擊,鼠標變爲“沙漏”形狀,這樣可以避免重複提交的可能。這似乎可以滿意一般的要求了。 我實現的效果圖:在點擊“載入”後呈現“頁面提交中...”在這提交中,鼠標爲沙漏,不允許點擊其他的,在載入完後自動消失,可以正常操作。 實現的過程很簡單: 1.在界面上添加一個要顯示的層:
頁面提交中.
Loading.
當然,大家可以自定義的更漂亮一點,加一些圖片什麼的,我使用100%的層,是爲了防止點擊。 2.給要提交的按鈕添加客戶端腳本: 在Page_OnLoad事件中加入: this.Button1.Attributes.Add("onclick","javascript:document.getElementById('doing').style.visibility='visible';"); 這是讓按鈕在點擊後,用客戶端腳本把圖層顯示出來。 3.重載Page的OnPreRender方法,在代碼中添加如下代碼: override protected void OnPreRender(EventArgs e) { doing.Style.Add("visibility","hidden"); } 這是在進行Render之前,把圖層隱藏掉,目前FW1.1只能放在OnPreRender中,其實最好是放在Render完成以後,在ASP.NET 2.0中添加了OnRenderComplete方法,所以等2.0以後,就可以把這語句放在RenderComplete裏更合適。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章