2009-04-24 52 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