为客户端舔加服务器端事件引起验证控件失效?

问题描述:在一个注册页面中,由于需要验证的控件很多,而且好多地方需要与数据库交互查询是否有重复的记录,
在这个项目中需要三次遍历数据库,所以想尝试下ajax异步调用,目的是为了减少用户注册时等待时间(由于验证
是否存在此记录采用的是自定义验证控件,点提交时需要n次查询数据库的记录),可是需要解决的是异步验证的状态
(是不是存在该条记录),于是在js里写了个状态返回函数
  function checkvalid()
  {
      if(state1||state2||state3)
         return  false;
      return true;
  }
然后在页面cs文件里面注册下客户端事件,
ImageButton1.Attributes.Add("onclick", "javascript:return checkvalid();");
运行。。。。结果ShowSummary什么也没弹出,查看源文件发现:
  <input type="submit" name="Button1" value="Button" onclick="checkvalid();javascript:return checkvalid();WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;Button1&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" id="Button1" /></div>
可以看出自己在cs文件里面注册下客户端事件把服务器端事件给覆盖掉了。
在OnClientClick事件中加上也不行。
于是改变原来的方案,在页面中添加一个TextBox和一个非空验证控件。然后根据异步验证结果来动态的设置TextBox的值,当存在记录是设置TextBox的值为空,然后在验证控件里显示相应的提示信息。问题就解决了。。。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值