自定义ASP.NET服务器控件的设计时验证

时间:2010-09-16 10:01:42

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

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

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

例如,以下控件:

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

在设计/编译时,如果使用控件而不设置Source属性,则应该出错:

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

我知道我可以在运行时检查这个,但是如果将验证推迟到运行时,可能会忽略一些早期检查会很好。

1 个答案:

答案 0 :(得分:1)

简短的回答:你做不到。

如果未设置属性,则控件应具有默认行为。只有这样才能避免在aspx页面中添加控件,并在代码隐藏中执行所有操作,您将拥有构造函数等默认语言结构。但我认为你知道这条道路: - )