【问题标题】:Design time validation of custom ASP.NET server controls自定义 ASP.NET 服务器控件的设计时验证
【发布时间】:2011-04-13 03:19:03
【问题描述】:

我正在创建一个具有一些属性的自定义控件。问题是如果没有设置这些属性,控件就无效,并且它们没有合适的默认值。

当它们被包含在页面中时,如何确保它们被设置在 ASP.NET 标记中?是否有某种可以挂钩的验证事件?

例如下面的控件:

  public class TestControl: Control
  {
    public string Source { get; set; }
  }

在设计/编译时,如果在没有设置 Source 属性的情况下使用控件应该会出错:

<Prototype:TestControl runat="server"></Prototype:JavaScriptInclude>

我知道我可以在运行时检查它,但最好进行一些早期检查,因为如果验证推迟到运行时,它可能会被忽略。

【问题讨论】:

    标签: asp.net custom-controls custom-server-controls


    【解决方案1】:

    简短的回答:你不能。

    如果未设置属性,控件应具有默认行为。促进这一点的唯一方法是绕过在aspx 页面中添加控件,并在您的代码隐藏中执行所有这些操作,您将拥有默认语言构造(如构造函数)。但我假设你知道那条路:-)

    【讨论】:

    • 谢谢,我将重写 OnInit 并在那里进行验证。不完美但可以接受。
    猜你喜欢
    • 1970-01-01
    • 2010-12-15
    • 2014-08-11
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多