日期:2014-05-17  浏览次数:20443 次

如何处理实现按钮只能点击一次的功能
在好多网站上看见过点击按钮后界面灰掉,处理完毕后界面才恢复正常,在asp.net中如何实现这种效果,请求高手指点,或者实现相应功能也可以,我现在碰见的问题是点击一个按钮后,后台在处理事件的过程中,操作人员又点击了一次。

------解决方案--------------------
在aspx中增加一个hiddenfield
aspx.cs中,button_clicked事件加入:
hfDisabledButton.Value = btn.ID;
在page_load中加入:
Button b = (Button)FindControl(Request["ctl00$cpMain$ctl00$hfDisabledButton"]);
if (b != null)
{
b.Enabled = false;
b.Style.Value = "color:#999999;";
}
以后再有postback事件也不会让button重新enable。

------解决方案--------------------
看看这里吧。
http://www.cnblogs.com/Jinglecat/archive/2007/07/10/811946.html#821900
------解决方案--------------------
探讨
this.Button1.Enabled=false;

///do somethings

this.Button1.Enabled=true;

------解决方案--------------------
瘋了.. 我這個就是Button事件啊,你看到:"Button1.Attributes.Add("onclick", "javascript:disabledthis(this);")" 這句沒?
之所以我使用一個<a>的標記,是為了讓前端有 __doPostBack Function 的 JS,你也可以自己寫的,不過不推薦而已
------解决方案--------------------
第二種方法,層覆蓋的形式
前端:
HTML code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script type="text/javascript">
        function ScreenWaiting() {
            var o;
            var x, y;
            x = screen.availWidth;
            y = screen.availHeight;
            o = document.getElementById("pWaiting");
            o.style.width = x;
            o.style.height = y;
            o.style.visibility = "visible";
            o.style.top = 0;
            o.style.left = 0;
            o.getFoucs;
        }
    </script>

    <style type="text/css">
        .snake
        {
            background: Silver;
            filter: alpha(opacity=50); /*IE*/
            -moz-opacity: 0.5; /*MOZ , FF*/
            opacity: 0.5; /*CSS3, FF1.5*/
            position: absolute;
            visibility: hidden;
            text-align: center;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div style="height: 300px; width: 300px; border: solid 1px blue">
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
    <div id="pWaiting" class="snake">
        <center>
            <p>
                Processing... ...
            </p>
        </center>
    </div>
</body>
</html>

------解决方案--------------------

那是用ajax处理的,

异步交互成功后把层去掉
------解决方案--------------------
还是使用AJAX吧,点击一下后,使按钮不可用,当数据提交成功后恢复