首页 新闻 会员 周边

asp.net表单提交后按钮状态为禁止

0
悬赏园豆:10 [已解决问题] 解决于 2009-09-08 18:18

为了防止用户提交后再次点击按钮,在Page_Load里面写了如下代码:

 protected void Page_Load(object sender, EventArgs e)
    {
        this.BTN_Submit.Attributes.Add("onclick", "this.disabled=true;" + this.ClientScript.GetPostBackEventReference(BTN_Submit, ""));

 

这样提交后按钮被暂时禁用了,问题是页面里的验证控件都不起作用了?这个问题好像一直没有解决,今天又碰到了,asp.net都出来这么久了,我想应该有更好方式处理这个问题吧?如果解决方式是利用session判断和数据库对记录就免了。

红尘中迷茫的主页 红尘中迷茫 | 初学一级 | 园豆:60
提问于:2009-09-08 11:06
< >
分享
最佳答案
0

<asp:Button ID="btnVerifyCode" runat="server" OnClick="btnVerifyCode_Click"

OnClientClick="this.value='请等待…';this.disabled=true;"

UseSubmitBehavior="false" CssClass="buttoncss_bg_bs" Text="确认提交" />

收获园豆:10
Ryan.zhu | 初学一级 |园豆:190 | 2009-09-08 15:01
好像没效果呢?
红尘中迷茫 | 园豆:60 (初学一级) | 2009-09-08 17:28
其他回答(6)
0

能否用按钮的enable=False来做呢?

Jaryleely | 园豆:367 (菜鸟二级) | 2009-09-08 11:09
服务器控件。直接设置 enable=False 无用,上面的代码其实就是设置按钮enable=False
支持(0) 反对(0) 红尘中迷茫 | 园豆:60 (初学一级) | 2009-09-08 11:22
http://dotnet.csdn.net/page/07d8402d-5951-4c89-b8b2-8267ec6d7c8a刚在csdn看到的,不知道能否满足您的要求
支持(0) 反对(0) Jaryleely | 园豆:367 (菜鸟二级) | 2009-09-08 11:29
0

能否用按钮的enable=False来做呢?

------------------------------------------------

如果网速慢的话,按钮还是可以点击的。

LZ可能是想按钮只能点击一次。     

Jesong | 园豆:4 (初学一级) | 2009-09-08 11:15
是的,只想点击一次。因为处理完毕后页面会跳转。问题就是网速慢的时候用户可能会多次点击。
支持(0) 反对(0) 红尘中迷茫 | 园豆:60 (初学一级) | 2009-09-08 11:23
0

这个还真不好解决。我也碰到这个问题,主要原因是你要用这个,必须在页面设置一个属性,这个属性会使你的验证控件失效。我的解决方式就是不在用服务端的验证控件,

直接用js来验证,在OnClientClick 中用用一个js方法验证。

邢少 | 园豆:10926 (专家六级) | 2009-09-08 11:38
0

点击后display:none 代替他的显示一条文字

用js实现

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2009-09-08 11:40
0

试试这个:

方案一:投机一下:
做两个按钮,一个A触发js事件,另一个B触发后台事件(display=none),
点击A使得A disable,然后用js点击B,类似于ButtonB_Click(sender,e);就可以搞定。

方案二:

http://www.cnblogs.com/jinglecat/archive/2007/07/10/811946.html

邀月 | 园豆:25475 (高人七级) | 2009-09-08 12:16
0

如果提交失败你这方法 如何处理!

应该在提交成功之后 设置Enable="false"吧

我可能没明白你的问题!

Mr雨 | 园豆:1199 (小虾三级) | 2009-09-08 14:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册