2009-04-24 49 views
1

我想强制控件的使用者在将控件放置在页面上时为其提供值。设计视图中需要的旗帜控件属性

在VisualStudio中,当您在用户控件上创建没有属性SRC或ALT的< img>标签时,它会被强调为SRC和ALT是必需的属性。我认为这只是编辑器对标签的特殊处理,但是有没有办法为控件定义类似的行为?

如果控制有一个属性定义是这样的:

public object AProperty 
{ 
    get 
    { 
     if (ViewState["AProperty"] == null) 
     { 
      throw new Exception("AProperty is a required property of this control"); 
     } 
     return ViewState["AProperty"]; 
    } 
    set { ViewState["AProperty"] = value; } 
} 

有没有办法使用自定义属性,否则那会标志的东西在设计师?

回答

4

您可以使用Microsoft.Build.Framework.Required属性。这将需要在构建时设置一个值,否则构建将失败并显示一条消息,指示该属性没有值。

我不相信有一个属性来表明一个特定的标记必须包含在服务器控件中(或者至少我没有看到任何这样的属性在System.Web.UI.HtmlControl.Image类)。我相信litle下划线是IDE的HTML验证的一部分。

你总是可以创造出抛出一个警告的自定义属性,如果属性缺失

+0

是啊,这就是我想通。没有必要,但它本来不错。我想我会在其中添加一个ToolboxData属性,所以它就在那里。 – 2009-04-24 21:22:15

0

虽然Microsoft.Build.Framework.Required可能是最好的答案在这里,别人谁偶然发现了这一点,并不能使用.NET 4.0中,你也可以用这个方法:

http://forums.asp.net/t/1238319.aspx