主要是想防止用户因网速慢多次提交的问题!
应该怎么实现?
谢谢

解决方案 »

  1.   

    提交時
    <input type="submit" name="B6" value="提交" onclick="B6.disabled='true'">提交完後重類加載頁面,原來灰色就會變黑色的了
      

  2.   

    两个发光的红石榴,真COOL啊,先恭喜一下!
    怎样判断页面处理完毕?
      

  3.   

    btn.Attributes.Add("onclick","this.disabled='true';return true;");
    这样可以变灰色了,但不能触发Click事件!
    怎么会事?
      

  4.   

    btn.Attributes.Add("onclick","this.disabled='true';");
    这样也不行
      

  5.   

    a页面
    function click(){event.srcElement.disbled=true;location.href='b页面';}
    btn.attachEvent('click',_click)b页面
    ....
    execute....
    ....
    response.redirect('a页面')
      

  6.   

    Click事件里Button1.Enable = false;
    PageLoad 的 If(!IsPOstBack) 外面写上
    Button1.Enable = false;
      

  7.   

    改一下,少写一个字母
    event.srcElement.disabled=true
      

  8.   

    asp.net 网页!提交前后都在同一个页!
    试了以下两种方法都不行,可以变灰色了,但不能触发Click事件!这是怎么会回?法1、<form id="Form1" method="post" runat="server" onsubmit="return NoEditor(this)">
    function NoEditor(obj)
    {
       obj.btn.disabled = true;
       return true;
    }
    法2、btn.Attributes.Add("onclick","this.disabled='true';");
      

  9.   

    Click事件都触发不了,还谈什么重新指向本页面啊!!!?只有触发后再重新指向本页面
      

  10.   

    大家肯定发现了,CSDN的“发出回复”按钮就是只能点击一下,点击后就又重新指向本页面!
    这是怎么实现的?这个方法和我的法1是一样的吧,只是我的Button的Click事件触发不了,郁闷~~~
      

  11.   

    这样一个过程吧比如:
    Button1 Click ---> 设置 Button2.Enabled  = false; ---> 处理页面,比如调用一个函数啊什么的--->处理完毕,在调用的函数最后加上Button2.Enabled  = true;
      

  12.   

    敲错了
    ===
    这样一个过程吧比如:
    Button2 Click ---> 设置 Button2.Enabled  = false; ---> 处理页面,比如调用一个函数啊什么的--->处理完毕,在调用的函数最后加上Button2.Enabled  = true;
      

  13.   

    在 服务器上做 Button2.Enabled  = false;Button2.Enabled  = true;对呈现来说有意义吗?
      

  14.   

    不要光说不试呀!试成功了再说啊!总的思想是:变灰后(即不能操作)重新联接到本页面就行了。CSDN的“发出回复”按钮的效果就是我想要的!大家回贴的时候可以细心看一下啊!但现在出现的问题是:变灰后,按钮的Click事件就不执行了,去掉btn.disabled = true;就可以执行了!谁能把完整正确的代码贴出来学学!
    谢谢!
      

  15.   

    刚试了一下,按照  BlueDestiny(Last, Present, Future)  兄的方法可行,但他是直接连接到另一页,对于URL传参也许可以,如果是 FORM 提交 该如何呢?
      

  16.   

    BlueDestiny(Last, Present, Future) 的方法不行的,也不能执行按钮的Click事件,事件是CS代码中的!他的这种方法只是用JS把按钮变的不可用后,再把页面联接到其它网页。对我的问题来说没用!谢谢
      

  17.   

    你在 CLICK 事件中的操作应该可以放到另一个页面进行操作吧。操作完成以后再回来不就行了
      

  18.   

    哎呀~~这样一下子会慢很多!
    饶了我吧!
    csdn就可以呀!
      

  19.   

    CSDN是 FORM 提交啊,你看清楚
      

  20.   

    告诉楼猪一个办法吧。
    你把你要弄的服务器端要做的东西都放在一个LinkButton的click事件中,这个LinkButton的Text值设成空,然后话一个很隐秘的地方,这样就成了一个隐藏的服务器端控件了。LinkButton的名字我假设就是LinkButton1
    然后,你写一个段这样的javascript代码
    <script language="javascript">
    function abc(obj)
    {
    obj.disabled = true;
    document.all("LinkButton1").click();
    }
    </script>
    再在页面上放一个普通的HTML按钮,然后把它的onclick事件调用这个函数,参数就是自己本身。就像这样
    <INPUT type="button" value="Button" name="aaa" onclick="abc(aaa)">
    这样你要的功能就实现了
      

  21.   

    你用SESSION,点击按钮后把SESSION为TRUE则屏蔽BUTTON,处理完数据再把SESSION设为FALSE
      

  22.   

    pyuan(菜鸟) 兄的方法治标不治本啊。
    如果这样,弄个层显示、隐藏不就得了。楼上的 frankonlyfine(大跌眼镜)  兄
    还要SESSION? 你试过没有?如果屏蔽了按钮,它的事件也就屏蔽了
      

  23.   

    this.btn_0.Attributes.Add("onclick","document.all.btn_0.disabled=true");
    Response.Write("aaaaaaaaaaaaaa");
    Response.Redirect("the URL");這種方法是可行的,樓主請檢查你的Button的事件是否已丟失!!
      

  24.   

    按照楼上的思路,我重新写了下。可以成功,只要重新注册按钮事件即可,下面是代码:
    这段是放在 Page_Load 中
    if(!Page.IsPostBack)
    {
    System.Text.StringBuilder s = new System.Text.StringBuilder();
    s.Append("a();");
    s.Append(this.GetPostBackEventReference(this.Button1));
    this.Button1.Attributes.Add("onclick",s.ToString());
    }a() 是 JS 
    function a()
    {

    var ok=document.getElementById('Button1');
    ok.disabled = true;
    return true;
    }OK,解决~
    楼主记得给分哦。~~
      

  25.   

    把anheizhizi的方法浓缩成精华如下所示:各位都要向anheizhizi好好学学。尤其是pyuan(菜鸟)btnSave.Attributes.Add("onclick","this.disabled='true';"+GetPostBackEventReference(btnSave));
      

  26.   

    莫非这样使用:首先在页面加一个绝对定位的层,最初不显示,点击button后用层来挡住button:<div id="doing" runat="server" style="Z-INDEX: 12000; LEFT: 0px; WIDTH: 100%; CURSOR: wait; POSITION: absolute; TOP: 0px; HEIGHT: 100%"> 
    <table width="100%" height="100%"> 
    <tr>
    <td height="100%" align="center" valign="middle">
    <table width="300" height="62" bgcolor="#99cccc" style="FILTER: Alpha(Opacity=85); WIDTH: 300px; HEIGHT: 62px"> 
    <tr align="center" valign="middle"> 
    <td><img src="../res/images/loading.gif" align="absMiddle">&nbsp;<br>正在发送邮件,请稍候........</td> 
    </tr> 
    </table> 
    </td> 
    </tr> 
    </table> 
    </div> 客户端验证事件
    <SCRIPT LANGUAGE="JavaScript">
    function CheckSend()
    {}
    </SCRIPT>pageload添加:
    if(!this.IsPostBack)
    {
    this.btn_send.Attributes.Add("onclick","if(CheckSend()){javascript:document.getElementById('doing').style.visibility='visible';}else{return false;}");
    //button提交触发,一旦页面客户端通过验证就显示层,这个时候避免再次提交,加上CheckSend()避免客户端没有通过验证也显示层,这样才能保证正确提交数据。
    }
    提交完毕后,重写事件,隐藏层:
    /// <summary>
    /// 重写方法
    /// </summary>
    /// <param name="e"></param>
    override protected void OnPreRender(EventArgs e) 

    doing.Style.Add("visibility","hidden"); 

      

  27.   

    据说在asp.net 2.0种比较容易处理了,还没有验证。
      

  28.   

    使用进程来处理最好了
    using System.Threading;
    点击按钮启用一个进程
    System.Threading.Thread ThreadLoad= new Thread(new ThreadStart(你要执行的方法));
    ThreadLoad.Start();
    this.Button1.Enable == false;
    当进程执行完后
    this.Button1.Enable == true;
      

  29.   

    .aspx
    <script>
    function post()
    {
        if (验证输入处理)
        {
            document.all.btnSubmit.disabled = "disabled ";
            return true;
        }
        else
        {
            return false;
        }
    }
    </script>
    <form runat="server" onsubmit='post();'>
    ......
    <INPUT id="btnSubmit" type="submit" value="提交">
    </form>.CS
    Page_Load()
    {
        if( Page.IsPostBack )
        {
            // 处理提交
        }
        else
        {
            //
        }
    }
      

  30.   

    to:keconghua(E代風花雪月) 想法不错,但在程序一次性执行过程中,设置this.Button1.Enable == false;是无效的!当网速慢时照样能点多次!
      

  31.   

    TO: yzh0523(水手)
    如果按钮在服务器端有事件要处理,就不行了,还要用anheizhizi 的!!!
    呵呵,有想法的继续啊
      

  32.   

    好东西呀!!!!我正好用得上 谢楼主和anheizhizi 啦