【问题标题】:Required Field Validator for 3 Controllers3 个控制器的必需字段验证器
【发布时间】:2012-12-03 19:38:11
【问题描述】:

每个必填字段验证器可以验证 1 个控制器,但假设我有 3 个 DropDownLists。

出生日期:

-日--月--年-

现在我知道我可以通过设置 InitialValue 来验证 1 DropDownList,其中 DropDownList 中的第一个项目是“选择一天”,它有一个 Value=""。

但我不想使用 3 个验证器。 (缺日,缺月,缺年)

我希望对所有 3 个都使用 1 个验证器,这意味着,如果我设置了日期和月份但我没有设置年份,我会得到(必须设置日期),同样的事情如果我设置了日期和没有月份的年份..等等......

我知道我可以使用自定义验证器来执行此操作,但我可以使用 1 个必填字段验证器来执行此操作吗?因为通常自定义验证器需要刷新页面(因此它可以执行服务器端代码)。

【问题讨论】:

    标签: c# asp.net validation


    【解决方案1】:

    您可以使用验证摘要

     <asp:ValidationSummary ID="ValidationSummary1"
      HeaderText="Date must be set"
        DisplayMode="BulletList"
         EnableClientScript="true"
           runat="server"/>
    

    并删除下拉菜单必填字段验证器的 ErrorMessage 、InitialValue 和 Text 属性。 这将为您提供所需的输出。

    【讨论】:

    • 这个解决方案有效,但是,摘要显示所有其他验证器的结果,我希望仅将这个摘要指定给这 3 个验证器,我该如何实现?
    • 在验证摘要、请求验证器和按钮上使用验证组。
    • 1 按钮应该被隐藏,当您的提交按钮被触发时,它将通过 Javascript 触发。看到这个stackoverflow.com/questions/7646162/…
    【解决方案2】:

    我认为您无法仅使用一个RequiredFieldControl 来完成此操作,要么使用自定义验证器,要么在代码隐藏中迭代每个控件并查看其索引不为零(假设这是您想要的初始值避免)

    祝你好运

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-21
      • 2013-03-23
      • 2010-11-26
      • 2016-10-02
      相关资源
      最近更新 更多