Click here to Skip to main content
15,885,141 members
Articles / Web Development / XHTML

Lock ASP.NET Page and Show Animated Image While Waiting for a Long Post-Back

Rate me:
Please Sign up or sign in to vote.
4.83/5 (35 votes)
9 Apr 2009CPOL4 min read 265.5K   11.1K   119  
Lock page while post back
/*
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.7.0
*/
.yui-overlay,
.yui-panel-container {
    visibility:hidden;
    position:absolute;
    z-index: 2;
}

.yui-tt {
    visibility:hidden;
    position:absolute;
    color:#333;
    background-color:#FDFFB4;
    font-family:arial,helvetica,verdana,sans-serif;
    padding:2px;
    border:1px solid #FCC90D;
    font:100% sans-serif;
    width:auto;
}

/*
    PLEASE NOTE: The <DIV> element used for a Tooltip's shadow is appended 
    to its root element via JavaScript once it has been rendered.  The 
    code that creates the shadow lives in the Tooltip's public "onRender" 
    event handler that is a prototype method of YAHOO.widget.Tooltip.  
    Implementers wishing to remove a Tooltip's shadow or add any other markup
    required for a given skin for Tooltip should override the "onRender" method.
*/

.yui-tt-shadow {
    display: none;
}

* html body.masked select {
    visibility:hidden;
}

* html div.yui-panel-container select {
    visibility:inherit;
}

* html div.drag select {
    visibility:hidden;
}

* html div.hide-select select {
    visibility:hidden;
}

.mask {
    z-index: 1; 
    display:none;
    position:absolute;
    top:0;
    left:0;
    -moz-opacity: 0.5;
    opacity:.50;
    filter: alpha(opacity=50);
    background-color:#CCC;
}

/*

There are two known issues with YAHOO.widget.Overlay (and its subclasses) that 
manifest in Gecko-based browsers on Mac OS X:

    1) Elements with scrollbars will poke through Overlay instances floating 
       above them.
    
    2) An Overlay's scrollbars and the scrollbars of its child nodes remain  
       visible when the Overlay is hidden.

To fix these bugs:

    1) The "overflow" property of an Overlay instance's root element and child 
       nodes is toggled between "hidden" and "auto" (through the application  
       and removal of the "hide-scrollbars" and "show-scrollbars" CSS classes)
       as its "visibility" configuration property is toggled between 
       "false" and "true."
    
    2) The "display" property of <SELECT> elements that are child nodes of the 
       Overlay instance's root element is set to "none" when it is hidden.

PLEASE NOTE:  
  
    1) The "hide-scrollbars" and "show-scrollbars" CSS classes classes are 
       applied only for Gecko on Mac OS X and are added/removed to/from the 
       Overlay's root HTML element (DIV) via the "hideMacGeckoScrollbars" and 
       "showMacGeckoScrollbars" methods of YAHOO.widget.Overlay.
    
    2) There may be instances where the CSS for a web page or application 
       contains style rules whose specificity override the rules implemented by 
       the Container CSS files to fix this bug.  In such cases, is necessary to 
       leverage the provided "hide-scrollbars" and "show-scrollbars" classes to 
       write custom style rules to guard against this bug.

** For more information on this issue, see:

   + https://bugzilla.mozilla.org/show_bug.cgi?id=187435
   + SourceForge bug #1723530

*/

.hide-scrollbars,
.hide-scrollbars * {

    overflow: hidden;

}

.hide-scrollbars select {

    display: none;

}

.show-scrollbars {

    overflow: auto;

}

.yui-panel-container.show-scrollbars {

    overflow: visible;

}

.yui-panel-container.show-scrollbars .underlay {

    overflow: auto;

}

.yui-panel-container.focused {

}


/* Panel underlay styles */

.yui-panel-container .underlay {

    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;

}

.yui-panel-container.matte {

    padding: 3px;
    background-color: #fff;

}

.yui-panel-container.shadow .underlay {

    top: 3px;
    bottom: -3px;
    right: -3px;
    left: 3px;
    background-color: #000;
    opacity: .12;
    filter: alpha(opacity=12);  /* For IE */

}

/* 
   Workaround for Safari 2.x - the yui-force-redraw class is applied, and then removed when
   the Panel's content changes, to force Safari 2.x to redraw the underlay.
   We attempt to choose a CSS property which has no visual impact when added,
   removed, but still causes Safari to redraw
*/
.yui-panel-container.shadow .underlay.yui-force-redraw {
    padding-bottom: 1px;
}

.yui-effect-fade .underlay {
    display:none;
}

.yui-panel {
    visibility:hidden;
    border-collapse:separate;
    position:relative;
    left:0;
    top:0;
    font:1em Arial;
    background-color:#FFF;
    border:1px solid #000;
    z-index:1;
    overflow:hidden;
}

.yui-panel .hd {
    background-color:#3d77cb;
    color:#FFF;
    font-size:100%;
    line-height:100%;
    border:1px solid #FFF;
    border-bottom:1px solid #000;
    font-weight:bold;
    padding:4px;
    white-space:nowrap;
}

.yui-panel .bd {
    overflow:hidden;
    padding:4px;
}

.yui-panel .bd p {
    margin:0 0 1em;
}

.yui-panel .container-close {
    position:absolute;
    top:5px;
    right:4px;
    z-index:6;
    height:12px;
    width:12px;
    margin:0px;
    padding:0px;
    background:url(close12_1.gif) no-repeat;
    cursor:pointer;
    visibility:inherit;
    text-indent:-10000em;
    overflow:hidden;
    text-decoration:none;
}

.yui-panel .ft {
    padding:4px;
    overflow:hidden;
}

.yui-simple-dialog .bd .yui-icon {
    background-repeat:no-repeat;
    width:16px;
    height:16px;
    margin-right:10px;
    float:left;
}

.yui-simple-dialog .bd span.blckicon {
    background: url("blck16_1.gif") no-repeat;
}

.yui-simple-dialog .bd span.alrticon {
    background: url("alrt16_1.gif") no-repeat;
}

.yui-simple-dialog .bd span.hlpicon {
    background: url("hlp16_1.gif") no-repeat;
}

.yui-simple-dialog .bd span.infoicon {
    background: url("info16_1.gif") no-repeat;
}

.yui-simple-dialog .bd span.warnicon {
    background: url("warn16_1.gif") no-repeat;
}

.yui-simple-dialog .bd span.tipicon {
    background: url("tip16_1.gif") no-repeat;
}

.yui-dialog .ft, 
.yui-simple-dialog .ft {
    padding-bottom:5px;
    padding-right:5px;
    text-align:right;
}

.yui-dialog form, 
.yui-simple-dialog form {
    margin:0;
}

.button-group button {
    font:100 76% verdana;
    text-decoration:none;
    background-color: #E4E4E4;
    color: #333;
    cursor: hand;
    vertical-align: middle;
    border: 2px solid #797979;
    border-top-color:#FFF;
    border-left-color:#FFF;
    margin:2px;
    padding:2px;
}

.button-group button.default {
    font-weight:bold;
}

.button-group button:hover, 
.button-group button.hover {
    border:2px solid #90A029;
    background-color:#EBF09E;
    border-top-color:#FFF;
    border-left-color:#FFF;
}

.button-group button:active {
    border:2px solid #E4E4E4;
    background-color:#BBB;
    border-top-color:#333;
    border-left-color:#333;
}

.yui-override-padding {
    padding:0 !important;
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer TrafficTech
Canada Canada
Have technical skills that can be demonstrated and an ability to resolve complex problems quickly while working in a demanding, high pressure environment

Designs, plans, and coordinates software development work teams

Provides technical mentorship to project team members

Handles complex application features and technical designs for the development of new applications.

Write articles about ASP.net:
http://www.codeproject.com/KB/aspnet/SQLHelper20.aspx http://www.codeproject.com/KB/aspnet/DateAndTimePicker.aspx http://www.codeproject.com/KB/aspnet/SQLHelper20.aspx http://www.codeproject.com/KB/aspnet/WaitImageBoxWhilePagePost.aspx

Designs and implements the components, frameworks and layers required for complex application features

Understands and participate in all aspects of the Software Development Life Cycle

Relies on experience and judgment to plan and accomplish goals.

Ability to perform various programming activities (coding, testing, debugging, documenting, maintaining and supporting).

Ability to work independently with minimal supervision.

10 years’ experience in web software design and development.

SpecialtiesASP.net
SQL 2005
AJAX 1.0
Linq
C# 3.5
Microsoft Application Blocks
Java Script
Reporting Services
SQL SSIS
XML
Classic ASP

Comments and Discussions