ASP.NET Custom Control в VS - Как правильно сделать формат VS - PullRequest
0 голосов
/ 10 октября 2009

Это, вероятно, довольно простой ответ, но я не написал много элементов управления, и я не могу придумать правильные слова для Google это правильно:

У меня есть собственный элемент управления, которыйЯ построил, и когда я создаю экземпляр в редакторе HTML в VS, я набираю следующее:

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

Когда я печатаю эту закрывающую угловую скобку, VS переформатирует его в

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

как это происходит с кнопками и другими тегами, которые обычно закрываются автоматически.

В моем элементе управления есть внутреннее содержимое, которое я хочу использовать, поэтому мне нужно изменить окончание и вручную добавить закрывающий тег.Я хотел бы, чтобы он вел себя как TextBox, где при вводе закрывающей скобки он будет добавлять и оставлять курсор внутри.

Я предполагаю, что это делается с помощью атрибута или чего-то еще определенного вкласс, но я не могу найти, что это такое.Любые идеи?

Очевидно, что это не так уж важно, так как это всего лишь несколько дополнительных нажатий клавиш, но я просто хотел бы сделать его максимально удобным для использования.

Спасибо

1 Ответ

1 голос
/ 10 октября 2009

Используя класс ParseChildrenAttribute , объявите атрибут ParseChildren для своего класса управления. Это будет указывать, что внутреннее содержимое должно быть прочитано в определенное свойство (имя в примере). Атрибут PersistenceMode указывает, как сериализовать внутреннее содержимое.

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

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

Здесь также есть более широкое объяснение здесь .

...