try something like the following (your need to  replace the IDs, didn't test, so it might not work):<form runat="server">
  <asp:Button id="btn" runat="server" OnClick="YourServerCode" />
</form><script language="javascript">
function setState()
{
  document.getElementById("YourID").disabled=true;
}
</script><script language="VB" runat="server">Sub Page_Load(sender as Object, e as EventArgs)
  btn.Attributes.Add("onclick","javascript:setState()")
End SubSub YourServerCode(sender as Object, e as EventArgs)
  Response.Write("button clicked")
End Sub
</script>

解决方案 »

  1.   

    Controls.Attributes.Add("","")
    还真是能解决不少问题的说
     呵呵
      

  2.   

    __doPostBack("", "")人为提交一个隐藏的按钮。该按钮要有runat=server
      

  3.   

    如果像这样先会执行客户端的btn.disabled=true,但是不再执行Sub YourServerCode啦function setState()
    {
      document.getElementById("btn").disabled=true;
    }
      

  4.   

    就把ID.disabled=true放到服务器端执行不是一样的吗,为什么要在客户端先执行,效果都一样啊.
      

  5.   

    就把ID.disabled=true放到服务器端执行不是一样的吗,为什么要在客户端先执行,效果都一样啊.回复:
    就像这个论坛,在点下发出回复之后先在客户端执行*.disabled=true,之后才提交数据到数据库,这样做的原因是防止用户重复点击“发出回复”按钮
      

  6.   

    1.点击之后清空不就行了
    2.另一个帖子的不是已经行了吗?
      我都试过了。
    3.可以这样做,当为空是 disabled=false
      不为空时disabled=true,注意,还是
      与1是一样的 ,一定要清空
      

  7.   

    我的用意是防止执行一个很慢的处理时,用户点击多次导致连续处理两次。比如我做一个上传页,上传大文件是肯定很慢,这时候用户就会多次点击“上传”按钮,如果把disabled=false写在客户端是起不到作用的,,,如果能做到点下按钮之后.disabled =true,再执行服务器端的事件就好了问题是如果在客户端执行了.disabled=true时,服务器端按钮对应的Click事件就不会被执行。大家做做个完整的例子给我吗
      

  8.   

    不好意思,上面的打错了
    我的用意是防止执行一个很慢的处理时,用户点击多次导致连续处理两次。比如我做一个上传页,上传大文件是肯定很慢,这时候用户就会多次点击“上传”按钮,如果把disabled=false写在服务器端是起不到作用的,,,如果能做到点下按钮之后执行.disabled =true,再执行服务器端的Click事件就好了问题是如果在客户端执行了.disabled=true后,服务器端按钮对应的Click事件就不会被执行了。大家做做个完整的例子给我吗
      

  9.   

    还要多完整的呀?
    <script language="javascript">
    function aaa()
    {
    document.getElementById("YourButton").disabled=true;
    _doPostBack("YourHyperLinkID","");
    }
    /script>

    <script language="VB" runat="server">
    Sub YourServerCode(sender as Object, e as EventArgs)
    Response.Write("button clicked and button disalbed")
    End Sub
    </script>
    <input type=button  id="YourButton" onclick="aaa()">

    <asp:button id="button1" runat="server" OnClick="YourServerCode" />该了一下别人的
      

  10.   

    谢谢smx717616,我试一下。
      

  11.   

    to  smx717616(.Net┷我很菜) 
    点击哪个按钮啊?
      

  12.   

    <asp:button id="button1" runat="server" OnClick="YourServerCode" />
    这个
      

  13.   

    btn.Attributes.Add("onclick","javascript:fun()")
      

  14.   

    我试过一个最简单的方法:
    用html控件加上一个runat=server的按钮。
    举例:
    <form id="Form1"> 
    <input type="button" id="btnSubmit" name="btnSubmit" onClick="javascript:btnDisabled();" value="提交" runat="server"/> 
    </form> 
    <script langugage="javascript"> 
    function btnDisabled() 

        document.Form1.btnSubmit.disabled=true; 

    </script> 一切ok,效果和楼主想要的一样。
      

  15.   

    to  tiannet(天网) 
    你的当然有用了,但是你的button还要求在
    disabled响应事件的 to 楼主
    不好意思,那个不对,我在看看
      

  16.   

    就是这样的,把代码考过去就行了
    这样是没错的,可是
    __doPostBack('Yourdd','');
    后又有刷新的 所以,("btn").disabled 又为 false 了
    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="w1.aspx.vb" Inherits="Web1.w1"%>
    <%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    </HEAD>
    <body ms_positioning="GridLayout">
    <TABLE height="300" cellSpacing="0" cellPadding="0" width="154" border="0" ms_2d_layout="TRUE">
    <TR>
    <TD width="0" height="0"></TD>
    <TD width="10" height="0"></TD>
    <TD width="144" height="0"></TD>
    </TR>
    <TR vAlign="top">
    <TD width="0" height="15"></TD>
    <TD colSpan="2" rowSpan="2">
    <form runat="server" ID="Form1">
    <TABLE height="137" cellSpacing="0" cellPadding="0" width="288" border="0" ms_2d_layout="TRUE">
    <TR vAlign="top">
    <TD width="80" height="112"></TD>
    <TD width="136"></TD>
    <TD width="72"></TD>
    </TR>
    <TR vAlign="top">
    <TD height="25"></TD>
    <TD>
    <input type=submit   value="sdfsd"  OnClick="setState()" /></TD>
    <TD>
    <asp:LinkButton   ID="Yourdd" Runat="server" OnClick="YourServerCode" /></TD>
    </TR>
    </TABLE>
    </form>
    </TD>
    </TR>
    <TR vAlign="top">
    <TD width="0" height="285"></TD>
    <TD>
    <script language="javascript">
    function setState()
    {
    document.getElementById("btn").disabled=true;

    __doPostBack('Yourdd','');
    }
    </script>
    </TD>
    </TR>
    </TABLE>
    </body>
    </HTML>
      

  17.   

    感谢 xiahouwen(活靶子.NET) 的帮助
      

  18.   

    smx717616(.Net┷我很菜) 
    我的不需要再在服务断响应什么事件,
    也不需要考虑什么刷不刷新的问题。
      

  19.   

    smx717616(.Net┷我很菜)
    我的是在一点击按钮就失效的,
    然后再执行按钮的事件,
    我一直都这么用。
      

  20.   

    <form id="Form1"> 
    <input type="button" id="btnSubmit" name="btnSubmit" onClick="javascript:btnDisabled();" value="提交" runat="server"/> 
    </form> 
    <script langugage="javascript"> 
    function btnDisabled() 

        document.Form1.btnSubmit.disabled=true; 

    </script> 
    用你button 可以实现服务器端的事件吗?
    在button失效之后,你有什么联系方式吗?
    讨论一下
      

  21.   

    (这样做的目的是防止用用户重复点击“UPLOAD”按钮而让网页重复执行按钮对应的UploadFile事件)。
    看了一下别人的代码,他们好像是写在<form onsubmit=** runat="server">里。我要的效果就是点下“upload”按钮后,在客户端让按钮变为false,再执行服务器端的
    Sub UploadFile事件,我试了好多方法都不行。。因为按钮为FALSE后,按钮所对应的OnClick事件就无法执行了。
    <Html>
    <Body BgColor=White>
    <H3>文件上传 -- 上传一个文件<Hr></H3><Form Enctype="multipart/form-data" runat="server">
    请输入完整文件路径:
    <Input Type="File" id="FileUp" runat="server"><P>
    <asp:Button runat="server" Text="Upload" OnClick="UploadFile" />
    <Hr>
    <asp:Label runat="server" id="Msg" />
    </Form>
    </Body>
    </Html><script language="VB" runat="server">   Sub UploadFile(sender As Object, e As EventArgs)
          Dim file As HttpPostedFile = FileUp.PostedFile      If file.ContentLength <> 0 Then
             Msg.Text  = "大小: " & File.ContentLength
             Msg.Text &= "<br>类型: " & File.ContentType
             Msg.Text &= "<br>名称: " & File.FileName         Dim FileSplit() As String = Split( File.FileName, "\" )
             Dim FileName As String = FileSplit(FileSplit.Length-1)
             File.SaveAs( Server.MapPath(FileName) )
          Else
             Msg.Text = ""
          End If
      End Sub</script>
      

  22.   

    你自己试一下就知道了
    然后再执行按钮的事件,
    我一直都这么用。
    你的事件在哪里?
    =======================
    你是指按钮执行的事件吗?
    跟平时一样,
    想放哪就放哪的。也就是说,
    按钮的事件和这个javascript没有任何联系,
    也不需要btn.Attributes.Add....
      

  23.   

    to:smx717616(.Net┷我很菜)和楼主
    我的方法只能这样用:aspx文件:<Html>
    <Body BgColor=White>
    <H3>文件上传 -- 上传一个文件<Hr></H3><Form Enctype="multipart/form-data" runat="server">
    请输入完整文件路径:
    <Input Type="File" id="FileUp" runat="server"><P>
    <input type="button" id="btnSubmit" name="btnSubmit" onClick="javascript:btnDisabled();" value="上传" runat="server"/> 
    <Hr>
    <asp:Label runat="server" id="Msg" />
    </Form>
    </Body>
    </Html>
    <script langugage="javascript"> 
    function btnDisabled() 

        document.Form1.btnSubmit.disabled=true; 

    </script> 
    .cs文件:..................
    Sub UploadFile(sender As Object, e As EventArgs)
          Dim file As HttpPostedFile = FileUp.PostedFile      If file.ContentLength <> 0 Then
             Msg.Text  = "大小: " & File.ContentLength
             Msg.Text &= "<br>类型: " & File.ContentType
             Msg.Text &= "<br>名称: " & File.FileName         Dim FileSplit() As String = Split( File.FileName, "\" )
             Dim FileName As String = FileSplit(FileSplit.Length-1)
             File.SaveAs( Server.MapPath(FileName) )
          Else
             Msg.Text = ""
          End If
      End Sub...........................注意:提交的按钮必须是html控件加一个ruant=server
     用asp控件是没有效果的
      

  24.   

    to tiannet(天网) 
     you are super!!
     可以做个朋友吗?
      

  25.   

    呵呵。我也是偶然发现的。
    可以,我的MSN是
    [email protected]
      

  26.   

    回复人: tiannet(天网) ( ) 信誉:100  2004-05-06 09:29:00  得分:0 
     
     
      我试过一个最简单的方法:
    用html控件加上一个runat=server的按钮。
    举例:
    <form id="Form1"> 
    <input type="button" id="btnSubmit" name="btnSubmit" onClick="javascript:btnDisabled();" value="提交" runat="server"/> 
    </form> 
    <script langugage="javascript"> 
    function btnDisabled() 

        document.Form1.btnSubmit.disabled=true; 

    </script> 一切ok,效果和楼主想要的一样。
     
     
    ++++++++++++++++++++++++++++++++
    这段可以做到。。