日期:2014-05-18  浏览次数:20472 次

|zyciis| CSDN的发布贴子的按钮,只点后变灰,这个设计是怎么设计的,因为我做的经常会出现异常 如页面没有反应
CSDN,这个不会出错
我原来的就添加onclientclick的时候给他变灰
但验证不过
后来加上if(pagevalid??反正这里是验证是否通过) 再变灰,
但还是有时候没有反应 一直查不到原因

但CSDN这个好像不会出错
他的设计思想是怎样的

谢谢

------解决方案--------------------
谁说不会出错?我这边网速慢就天天错~

JS做的变灰不可见吧~
------解决方案--------------------
用AJAX控件了吧。
------解决方案--------------------
csdn这个变灰后,点了好像一样可以提交-_-!

------解决方案--------------------
正常的.灰着的时候应该就不能点才对.

直接用js脚本控制即可.
------解决方案--------------------
一般是这个步骤:

提交
变灰
回调
成功或失败都变回来
------解决方案--------------------
探讨
一般是这个步骤:

提交
变灰
回调
成功或失败都变回来

------解决方案--------------------
破CSDN。。。还天天用AJAX。。用的我天天好友那里都有个(1)
------解决方案--------------------
探讨
破CSDN。。。还天天用AJAX。。用的我天天好友那里都有个(1)

------解决方案--------------------
点击 
验证是否控件验证通过 
将控件变灰 完 后面的就是自动提交 

但是页面有时候点击了,验证通过了,也变灰了,但是页面就是没有反应 
找不到原因 闷 
================
那要看你具体代码怎么实现的了.

一般都是客户端做.
点击
变灰
验证(可能有客户端的,可能会有服务器端的)
验证失败了直接返回,不提交,按钮恢复
验证成功通过,就提交
------解决方案--------------------
探讨
破CSDN。。。还天天用AJAX。。用的我天天好友那里都有个(1)

------解决方案--------------------
HTML code


<asp:UpdateProgress ID="UpdateProgress1" runat="server" DisplayAfter="0" DynamicLayout="false">
    <ProgressTemplate>
        <span style="color:Red">Loading...</span>
    </ProgressTemplate>
</asp:UpdateProgress>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <%= DateTime.Now %><br />
        <asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
        <asp:Button ID="btnPrecedence" runat="server" Text="优先" OnClick="Button_OnClick" />
        <asp:Button ID="Button2" runat="server" Text="普通" OnClick="Button_OnClick" />
    </ContentTemplate>
</asp:UpdatePanel>

<script type="text/javascript" language="javascript">
    var lastPostBackButtonId = null;
    var btnPrecedenceId = "<%= this.btnPrecedence.ClientID %>";
    
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(
        function(sender, e)
        {
            var prm = Sys.WebForms.PageRequestManager.getInstance();
            if (prm.get_isInAsyncPostBack())
            {
                if (lastPostBackButtonId == btnPrecedenceId)
                {
                    e.set_cancel(true);
                    
                    if (e.get_postBackElement().id == btnPrecedenceId)
                    {
                        showMessage("不可重复发起优先的刷新。");
                    }
                    else
                    {
                        showMessage("请等待优先的刷新结束。");
                    }
                    
                    return;
                }
                else if (e.get_postBackElement().id == btnPrecedenceId)
                {
                    showMessage("发起优先的刷新,普通的刷新将被取消。");
                }
                else
                {
                    showMessage("重新发起普通的刷新,前一次提交将被取消。");
                }
            }
            
            lastP