zoukankan      html  css  js  c++  java
  • asp.net中requiredfieldvalidator很纠结的问题(有关ClientScript属性)

    首先看一眼界面

    界面需求:

    1."Create Section"按钮,取得文本框的输入文本存入库中;

    2.点击GridView的"编辑",将记录的信息填入文本框中;

    3.业务编码对应不能为空的表字段SectionCode,ID为"tbSectionID";

    4.添加一个ReQuiredFieldValidator,ControlToValidate="tbSectionID";

    现在开始纠结的问题

    首先,ReQuiredFieldValidator的EnableClientScript设为true,使ReQuiredFieldValidator允许客户端验证。

    点击按钮会触发认证,提示SectionId不能为空,满足要求,但点击GridView的"编辑"也会触发验证,使得记录的信息无法填充控件

    分析原因:EnableClientScript=true,ReQuiredFieldValidator进行客户端的验证,点击"编辑"即会触发客户端的验证,此时SectionID的值为空,验证无法通过,故无法回传到服务器,因此也无法将文本框填充内容。

    然后,将ReQuiredFieldValidator的EnableClientScript设为false,取消客户端的验证

    此时点击按钮提示验证无法通过,但内容却能够存入库,点击编辑,也提示验证无法通过,但文本框却填充成功。

    分析原因:ReQuiredFieldValidator的EnableClientScript设为false会将验证在服务器端进行,根据SectionID的值进行验证,若不通过,将Page的IsValid设为false,并显示ErrorMessage,但服务器端的代码还是随后执行了。

    解决办法:此时要添加代码来判断验证的结果了,在Button的事件响应函数写为如下形式:

    protected void OnButton_Clicked(object sender,EventArgs e)

    {

      if(Page.IsValid)

      {

        //按钮的事件处理逻辑

        ....

      }

    }

    (注:个人意见,如有错误,请不吝指教)

  • 相关阅读:
    js获取屏幕大小
    获取系统开机的时间(Windows、Linux)
    C++的STL中vector内存分配方法的简单探索
    服务器端如何判断客户端是不是手机
    测试简单for循环的效率
    多少钱都买不到这张表!百万都买不到这张表
    Unable to compile class for JSP
    windows上java中文乱码-指定字符集 -Dfile.encoding=UTF-8
    google翻译插件安装
    工作任务分配时的五个问题
  • 原文地址:https://www.cnblogs.com/larson/p/1746104.html
Copyright © 2011-2022 走看看