【问题标题】:Validators inside Webcontrol doesn't trip Page.IsValidWebcontrol 中的验证器不会触发 Page.IsValid
【发布时间】:2010-08-09 16:01:47
【问题描述】:

我有一个 dotnet 页面,上面有一些输入框和一堆运行良好的验证器。但是我决定重新设计它,以便将一些功能打包到 web 控件中。

现在为了在继续之前检查验证,我在按钮单击事件中使用 Page.IsValid,因为完成表单的按钮不再与输入框位于同一个 Web 控件中。然而,即使验证器仍然适用于 web 控件本身(从同一 web 控件的其他部分触发回发会按预期触发验证器),它们似乎仍然为 Page.IsValid 返回 true,即使内容无效。

Web 控件没有自己的 IsValid 属性 - 为什么验证器不再触发 page.IsValid?

【问题讨论】:

  • 是的。在使用 page.isvalid 之前,我必须手动触发验证组。即:Page.Validate("link") If Page.IsValid Then ...
  • 好的!很高兴知道。您是否尝试过 ValidationPropertyAttribute?

标签: .net validation


【解决方案1】:

您是否考虑过在自定义 Web 控件类上使用 ValidationPropertyAttribute?您可以使用它来定义某些属性需要验证。

来自 MSDN:

[ValidationPropertyAttribute("Message")]
public class MessageControl : Label
{
  private int _message = 0;
  public int Message
  {
    get 
    {
      return _message;
    }
    set
    {
       _message = value;
    }
  }
}

另见http://msdn.microsoft.com/en-us/library/system.web.ui.validationpropertyattribute.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 2020-02-21
    • 1970-01-01
    • 2017-04-22
    • 2021-12-23
    • 2019-04-08
    相关资源
    最近更新 更多