2009-10-09 52 views
0

這可能是一個非常簡單的答案,但我沒有寫很多控件,而且我也不能真正想到Google的正確單詞正確:VS中的ASP.NET自定義控制 - 如何正確地製作VS格式

我有我建立了一個自定義的控制,而當我在VS的HTML編輯器創建一個實例,我鍵入以下內容:

<cc1:MyControlName id="id1" runat="server"> 

當我鍵入右尖括號,VS重新格式化它到

<cc1:MyControlName id="id1" runat="server" /> 

它按鈕和其他通常自閉的標籤。

我的控件具有我想要使用的內部內容,所以我必須更改結尾,並手動添加結束標記。我希望它的行爲像TextBox一樣,在輸入結束括號時,它會添加和離開光標在裏面。

我假設這是通過屬性或類中定義的其他東西來完成的,但我似乎無法找到它是什麼。有任何想法嗎?

顯然這並不重要,因爲它只是一些額外的按鍵,但我只是想盡可能方便地使用它。

感謝

回答

1

使用ParseChildrenAttribute類中,聲明你的控件類ParseChildren屬性。這將指定應將內部內容讀入特定屬性(示例中的名稱)。 PersistenceMode屬性指定如何序列化內部內容。

[ParseChildren(true, "Name"), 
DefaultProperty("Name")] 
public class Foo 
{ 
    //... 

    [PersistenceMode(PersistenceMode.InnerDefaultProperty)] 
    public string Name 
    { 
     get ; set; 
    } 
} 

還有一個更廣泛的解釋here

+0

感謝您的評論 - 這是我已經,這是什麼使解析器/編譯器功能正常呈現控制。但是,它並不會使Visual Studio將控件識別爲需要內部內容的控件,因此它仍然會在最後自動應用/>。 有沒有其他想法? 謝謝 – 2009-10-12 15:30:57