From: http://www.dotblogs.com.tw/joysdw12/archive/2012/12/13/85629.aspx

前言


  在網頁執行中可能會因為資料量大或其他原因影響使用者按下按鈕時頁面還在讀取而停住等待的情況發生,當碰到這種情況時,使用者可能以為沒按到而重複點擊按鈕,而導致重複送出的問題發生,碰到這種問題我們可以使用簡單的jQuery與Css代碼來處理,請看範例:

範例


首先先去找一張 Loading 的圖片,如下:

接下來編寫HTML碼,建立DIV標簽放置相關內容,如下:

<div id="divProgress" style="text-align:center; display: none; position: fixed; top: 50%;  left: 50%;" >
<asp:Image ID="imgLoading" runat="server" ImageUrl="~/Images/loading.gif" />
<br />
<font color="#1B3563" size="2px">資料處理中</font>
</div>
<div id="divMaskFrame" style="background-color: #F2F4F7; display: none; left: 0px;
position: absolute; top: 0px;">
</div>

最後在加上控制顯示或隱藏的jQuery代碼即可,如下:

// 顯示讀取遮罩
function ShowProgressBar() {
displayProgress();
displayMaskFrame();
} // 隱藏讀取遮罩
function HideProgressBar() {
var progress = $('#divProgress');
var maskFrame = $("#divMaskFrame");
progress.hide();
maskFrame.hide();
}
// 顯示讀取畫面
function displayProgress() {
var w = $(document).width();
var h = $(window).height();
var progress = $('#divProgress');
progress.css({ "z-index": , "top": (h / ) - (progress.height() / ), "left": (w / ) - (progress.width() / ) });
progress.show();
}
// 顯示遮罩畫面
function displayMaskFrame() {
var w = $(window).width();
var h = $(document).height();
var maskFrame = $("#divMaskFrame");
maskFrame.css({ "z-index": , "opacity": 0.7, "width": w, "height": h });
maskFrame.show();
}

之後我們只要在要使用的按鈕上加入 onClientClick 事件觸發 ShowProgressBar(); 即可,如下:

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="送出" OnClientClick="ShowProgressBar();" />

結果如下:

如此就以簡單的方法防止,並且也不會讓使用者不知所措,使用觀感也會好一點嘍。

[ASP.NET] 使用Loading遮罩防止使用者重複點擊的更多相关文章

  1. ASP FSO操作文件(复制文件、重命名文件、删除文件、替换字符串)

    ASP FSO操作文件(复制文件.重命名文件.删除文件.替换字符串)FSO的意思是FileSystemObject,即文件系统对象.FSO对象模型包含在Scripting 类型库 (Scrrun.Dl ...

  2. WPF loading遮罩层 LoadingMask

    原文:WPF loading遮罩层 LoadingMask 大家可能很纠结在异步query数据的时候想在wpf程序中显示一个loading的遮罩吧 今天就为大家介绍下遮罩的制作 源码下载 点击此处 先 ...

  3. 【EXCEL】簡単に重複探し

    下記のような表があって.重複があるかどうか探すのが大変と思いますが. 簡単に重複探す方法を紹介します. Step1.重複を探す(例えこちらでは項目)を選択します. Step2.メニューで 条件付き書式 ...

  4. SQL Sever 刪除重複數據只剩一條

    use book go create table ##T1( n int, a nvarchar(20) ) --查詢重複記錄,插入臨時表 insert into ##T1(n,a) select s ...

  5. 扩展easyui.datagrid,添加数据loading遮罩效果代码 --来自网摘收集

    //jquery.datagrid 扩展 (function (){ $.extend($.fn.datagrid.methods, { //显示遮罩 loading: function(jq){ r ...

  6. jQuery扩展easyui.datagrid,添加数据loading遮罩效果代码

    //jquery.datagrid 扩展加载数据Loading效果 (function (){ $.extend($.fn.datagrid.methods, { //显示遮罩 loading: fu ...

  7. 【WPF】BusyIndicator做Loading遮罩层

    百度了一下,粗略看了几个国内野人的做法,花了时间看下去感觉不太好用(比如有Loading居然只是作为窗体的一个局部控件的,没法全屏遮罩,那要你有何用?),于是谷歌找轮子去. 好用的轮子:http:// ...

  8. JS-easyui 扩展easyui.datagrid,添加数据loading遮罩效果代码

    (function (){ $.extend($.fn.datagrid.methods, { //显示遮罩 loading: function(jq){ return jq.each(functio ...

  9. 一个Loading 遮罩效果

    1.需要两个DIV,一个用来遮罩,另一个用来显示Loading图片和文字(初始时它们是隐藏的) .gdiv_over { display: none; position: absolute; top: ...

随机推荐

  1. redis web 客户端工具 redis-admin

    redis-admin是基于java的redis web客户端(redis client),以方便广大程序员使用redis为宗旨,集五种数据结构增删改查于一身. https://github.com/ ...

  2. 将spring管理的bean使用注解的方式注入到servlet中

    Filter和Servlet中不能直接注解使用spring的bean,因为这两个都是servlet容器维护管理的,当然也有实现方法,如下: 1.创建一个AbstractServlet 抽象类,让你的所 ...

  3. 对List里的对象元素进行排序

    public class Student { private int studentId; private String studentName; private int age; public St ...

  4. javascript的语句和函数

    1.for-in语句:是一种精准的迭代语句,可以用来枚举对象的属性. 2.label语句:在代码中添加标签,以便将来使用,由break和continue语句调用. 3.with语句:将代码的作用域设置 ...

  5. sql中charindex

    假如你写过很多程序,你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我将讨论使用CHARINDEX和PATINDEX函数来搜索文字列和字符串.我将告诉你这两个函数是如何运转的,解 ...

  6. qq被冻结怎么激活

    原文章http://jingyan.baidu.com/article/ce436649f43d4d3773afd3f2.html 一些QQ用户可能遇到过QQ被冻结的情况吧!不用着急,小编分享QQ被冻 ...

  7. dx中纹理相关的接口备注

    1.内存中的纹理保存到文件 HRESULT D3DXSaveTextureToFile( __in LPCTSTR pDestFile, __in D3DXIMAGE_FILEFORMAT DestF ...

  8. Computer assembly and maintenance

    转载请注明出处: 我所遇见的世界会更美好 第一章 计算机的基本构成和组装 1,内存的组成? (1)  RAM(随机存取存储器) (2)  ROM(只读存储器) (3)  Cache(高速缓存) 2,S ...

  9. struts2文件下载相关信息

    struts.xml文件配置: <span style="font-size:16px;"><?xml version="1.0" encod ...

  10. sealed(C# 参考)

    sealed 修饰符可以应用于类.实例方法和属性.密封类不能被继承.密封方法会重写基类中的方法,但其本身不能在任何派生类中进一步重写.当应用于方法或属性时,sealed 修饰符必须始终与 overri ...