【问题标题】:Field validators in asp.netasp.net 中的字段验证器
【发布时间】:2010-05-12 13:52:25
【问题描述】:

是否可以使用“必填字段验证器”控件来验证多个字段(例如,我有 12 个必需的文本框。我想尝试避免使用 12 个 RFV 控件。如果确实触发了验证,是否存在一种显示自定义消息的方法(“textA 为空”或“textB 为空”)等?

【问题讨论】:

  • 如果您使用自定义验证器,您所花费的时间可能是剪切和粘贴 12 个 requiredfieldvalidator 控件所花费的时间的两倍。

标签: c# asp.net .net-3.5 requiredfieldvalidator


【解决方案1】:

您可以创建一个自定义验证器来验证所有控件。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator.aspx

必填字段验证器一次只能验证一个控件。

【讨论】:

  • 这绝对是一个选项,但不要设置“ControlToValidate”,否则它可能永远不会触发。
【解决方案2】:

RequiredFieldValidator 无法做到这一点;您可以编写自己的 CustomValidator 来执行此操作,但验证将在服务器端而不是在客户端。

【讨论】:

  • 使用 CustomValidator,您还可以注册一个负责客户端验证的客户端脚本。
  • 在 CustomValidator 中,我似乎无法添加多个“ControlToValidate”
  • @user279521 - 它不是那样工作的。您根本没有将 ControlToValidate 设置为任何值。在您的服务器端代码中,您按名称检查每个字段。
  • 是否可以在验证返回“false”时添加自定义错误消息(例如“TextA 为空白”或“TextB 为空白”)?
  • 是的。如果您的 CustomValidator 被称为 cv,那么只需将 cv.ErrorMessage 设置为您想要的任何内容。
【解决方案3】:

【讨论】:

    【解决方案4】:

    正如其他人所提到的,您可以创建可以在客户端和服务器端进行验证的 CustomValidator。您必须记住几件事。

    1) 确保将您的客户端脚本公开为 Web 资源。这将使脚本能够被浏览器缓存。

    2) 使用特定属性来定位特定文本框。这可以通过给他们一个特定的类来执行,该类将在您的自定义验证器控件中进行验证。

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多