[ASP.NET]好用的ModalUpdateProgress

  • 13149
  • 0

[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"/>&nbsp;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;
}

畫面

3


blog 與課程更新內容,請前往新站位置:http://tdd.best/