如果通过js把button disabled掉的话,服务器事件就没法响应了,请问还有别的方法吗??

解决方案 »

  1.   

    定义一个session 提交后清空
      

  2.   

    button连续点击导致重复提交?
      

  3.   

    不要用WEB控件中的BUTTON用HTML中的BUTTON可以解决这个问题:
    具体如下:
    在:HTML中,定义这样一个BUTTON
    -------------------------
    <input type="button" value="mybutton" onclick="this.disabled=true;" runat="server" id="mybutton" name="mybutton">
    --------------------------------
    然后在CODEBEHIND中,使用ServerClick事件,即:
        Private Sub mybutton_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles mybutton.ServerClick
    .....
        End Sub
    ----------------------------------
    注意,在CODEBEHIND中,还必须有以下这句定义按钮的句子
       Protected WithEvents mybutton As System.Web.UI.HtmlControls.HtmlInputButton
      

  4.   

    可以试试 viewstat ,提交的时候判断是否有值.
    viewstat比session 占的资源少,相当与是一个hidden控件
      

  5.   

    递交后服务器代码运行需要时间,此时页面无法跳转的, xiaohutushen(xiaohutushen) 的方法行不通。
      

  6.   

    我觉得你在提交后肯定是要将数据插入到数据库,等这个操作做完后
    再用Response.Redirect()跳转页面不就行了。
      

  7.   

    smoothwood(吾谁与归)  的 有道理
      

  8.   

    viewstate的值要在服务器端提交结束后才能生效,好像也行不通
      

  9.   

    smoothwood(吾谁与归) 的方法已试过,跟button.Attributes.add的效果是一样的,disable后,服务器端事件不能响应
      

  10.   

    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" >
    <SCRIPT LANGUAGE="javascript">
    <!--
    function input(ok)
    {
        var M1=ok.ReplyContent.value;
        if (M1=='') {
    alert('回复内容不可以为空.');
    return false;
    }
    ok.B1.disabled =true;
    ok.B2.disabled =true;
        return true;
    }
    //-->
    </script>
    </HEAD>
    <BODY>
    <form action="" onsubmit="return input(this)" method="post"   id=XmlRePly name=XmlRePly>
    <textarea cols="82" rows="10" name="ReplyContent" class='content'></textarea>
    <input type="submit" value="发出回复" border="0" name="B1"  WIDTH="60" HEIGHT="20" class="formtext">
    <INPUT name="B2" TYPE="reset" WIDTH="60" HEIGHT="20" class="formtext" value="重  写">
    </form>

    </BODY>
    </HTML>
      

  11.   

    不可能:
    下面是测试的代码,你可以自己试试:
     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码        If Not IsPostBack Then
                Dim conn As New SqlConnection("server=localhost;user id=sa;password=ycm119;database=pubs;")
                Dim dad As New SqlDataAdapter("Select  * from employee", conn)
                Dim dst As New DataSet
                dad.Fill(dst, "employee")
                DataGrid1.DataSource = dst.Tables("employee")
                DataGrid1.DataBind()
            End If
        End Sub    Private Sub mybutton_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles mybutton.ServerClick
            DataGrid1.DataSource = ""
            DataGrid1.DataBind()
        End Sub
      

  12.   

    gesnpt(gesnpt)老兄说的有问题,在数据保存的过程中,页面是不会先跳转的,在这个过程中,可以连续点击,从而重复插入数据。关键是要disable按钮
      

  13.   

    不可能吧,你用下面的代码测试一下:估计是不是你程序其他地方还有问题
    下面是测试的代码,你可以自己试试:
     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码        If Not IsPostBack Then
                Dim conn As New SqlConnection("server=localhost;user id=sa;password=ycm119;database=pubs;")
                Dim dad As New SqlDataAdapter("Select  * from employee", conn)
                Dim dst As New DataSet
                dad.Fill(dst, "employee")
                DataGrid1.DataSource = dst.Tables("employee")
                DataGrid1.DataBind()
            End If
        End Sub    Private Sub mybutton_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles mybutton.ServerClick
            DataGrid1.DataSource = ""
            DataGrid1.DataBind()
        End Sub
      

  14.   

    客户端
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" >
    <SCRIPT LANGUAGE="javascript">
    <!--
    function input(ok)
    {
        var M1=ok.ReplyContent.value;
        if (M1=='') {
    alert('回复内容不可以为空.');
    return false;
    }
    ok.B1.disabled =true;
    ok.B2.disabled =true;
        return true;
    }
    //-->
    </script>
    </HEAD>
    <BODY>
    <form action="" onsubmit="return input(this)" method="post"   id=XmlRePly name=XmlRePly>
    <textarea cols="82" rows="10" name="ReplyContent" class='content'></textarea>
    <input type="submit" value="发出回复" border="0" name="B1"  WIDTH="60" HEIGHT="20" class="formtext">
    <INPUT name="B2" TYPE="reset" WIDTH="60" HEIGHT="20" class="formtext" value="重  写">
    </form>

    </BODY>
    </HTML>
    服务端的看楼上
      

  15.   

    我检查过代码了,好像没有问题啊
    还是不行
    用onsubmit方法也是过,一样也不能响应啊
      

  16.   

    如果吧button.disabled=true去掉的话,就可以响应了,难道按钮被disable后就不能响应服务器端事件了??
      

  17.   

    奇怪,现在可以了,非常感谢smoothwood(吾谁与归)