[ASP.NET]好用的ModalUpdateProgress
前言
年輕不懂事的時候,一直以為ModalUpdateProgress這個server control,是在AJAX裡 system.web.extension的東西,
或是AJAX control toolkit裡面的一個extender...
結果,我錯了,在 system.web.extension裡面的Control叫做UpdateProgress,不叫ModalUpdateProgress。
在AJAX control toolkit裡面,叫做ModalPopup。
並沒有一個server control叫做ModalUpdateProgress...
見鬼了,那我之前用的那個是什麼...
去瞭解了一下,我才發現,一切都是個美麗的誤會。
那是人家自己包好的一個控制項,build出來的dll叫做ajaxcontrols.dll。
所以我就一直以為它是AJAX內建的東西。
當你submit的時候,就會出現一個loading的圖示,並且將後面的網頁擋住。
簡單講,就是UpdateProgress+BlockUI的效果。
Survey
原文出處:http://www.codeproject.com/KB/ajax/ModalUpdateProgress.aspx
上面這個是有附source code的。
build好的dll: AjaxControls.rar
使用上請搭配[JavaScript]如何避免頁面重複submit的動作這個作法。
因為在div還沒popup時,是可以利用時間差進行動作的。
會推薦的原因,是因為看過他的source code,乾淨,且幾乎沒多餘的CODE或功能。
使用的底層也是結合modalpopup跟updateprogress,再加上javascript去處理。
另一個原因,好用!
放在masterpage裡,不管放哪都OK,只要設定對應的div,設定要block的CssClass,要顯示的圖片,就搞定了。
只要是非同步的request,強迫一定要擋住畫面時,就會觸發。
Play it
.aspx or .master
DisplayAfter="0">
<ProgressTemplate>
<div class="modalPopup">
<img runat="server" alt="Loading..." src="../App_Themes/Default/PageBlock.gif"/> Loading...
</div>
</ProgressTemplate>
</cc2:ModalUpdateProgress>
.css
{
text-align:center;
padding-top: 30px;
border-style:solid;
border-width:1px;
background-color:White;
width:300px;
height:100px;
}
.modalProgressGreyBackground
{
background:#CCCCCC;
filter:alpha(opacity=60);
opacity:0.6;
}
畫面
blog 與課程更新內容,請前往新站位置:http://tdd.best/