已经有好一段时间没有使用.NET控件做web了,今天要优化一个界面,正好是用.NET控件做的,遂把此次解决问题的方案下来。
总是有许多开发人员觉得做东西没思路,我觉得只是见得少了,思考少了的缘故,所以我总是喜欢以写博客的方式记录下来平时工作中遇到的一些问题,并附上解决方案。
需求:界面查询操作比较费时,用一个遮罩层显示操作正在执行,当操作执行完之后,关闭遮罩层。
思路:
1、准备两个div,以嵌套的形式存在,下面的div作为遮罩层,上面的div作为显示用,可以放一个动态图片,再附上几个字——“加载中...”。div默认让其不显示,设置其css样式:display: none;
2、当点击查询时,修改div的css样式让其显示出来,当查询结束后,再把该div隐藏起来,就如此简单。
当然,还有一些细节需要注意,如遮罩层是遮罩整个界面还是只在某一区域实现遮罩效果,我这里是实现区域遮罩,如果要实现整个界面遮罩只要稍微修改下js就可以了。
效果图如下:
Html代码如下:
- <div id="MyDiv" class="white_content">
- <div class="loading">
- <span style='width: 115px; height: 115px;'>
- <img src='Images/progress.gif' alt="数据正在加载..." /></span><span class='spnContent'>数据正在加载...</span>
- </div>
- </div>
Css代码如下:
-
- .loading {
- z-index: 1001;
- vertical-align: middle;
- text-align:center;
- height:115px;
- line-height:115px;
- }
- .spnContent {
- vertical-align: 50%;
- margin-left: 10px;
- color: red;
- font-size: 18px;
- font-weight: bold;
- }
- .white_content {
- display: none;
- position: absolute;
- border: 3px solid lightblue;
- background-color: #CAE4F7;
- z-index: 9999;
- -moz-opacity: 0.5;
- opacity: .50;
- filter: alpha(opacity=50);
- vertical-align: middle;
- top:0px;
- text-align:center;
- }
- .navPoint {
- color: white;
- cursor:pointer;
- font-family: Webdings;
- font-size: 9pt;
- }
-
js代码如下:
-
- var show_div = 'MyDiv';
-
- function ShowDiv() {
- var showdiv = document.getElementById(show_div);
- if (showdiv == undefined) {
- return;
- }
- showdiv.style.width = $(document).width()+"px";
- showdiv.style.top = $("#divList").offset().top + "px";
- showdiv.style.left = $("#divList").offset().left + "px";
-
- showdiv.style.height = $("#divList").height() + "px";
- showdiv.style.display = 'block';
- };
-
- function CloseDiv() {
- document.getElementById(show_div).style.display = 'none';
- };
-
- function validateInput() {
- ShowDiv();
- __doPostBack("btnSearch", "");
- }
aspx页面关键代码:
- <asp:Button ID="btnSearch" runat="server" Text="查 询" CssClass="btn" Font-Bold="True" Height="25px" Width="80px" UseSubmitBehavior="False"
- p;OnClick="btnSearch_Click" OnClientClick="return validateInput();" />
cs代码:
- protected void btnSearch_Click(object sender, EventArgs e)
- {
-
- ScriptManager.RegisterStartupScript(UpdatePanel1, this.GetType(), "HiddenDiv", "CloseDiv();", true);
- }
代码很简单,也加了注释,这里我就不详细解释了。
原文地址:http://blog.csdn.net/zouyujie1127/article/details/42125587#comments