Как получить имя свойства серверного элемента управления с тире в нем - PullRequest
1 голос
/ 22 сентября 2011

Я создаю пользовательский серверный элемент управления в ASP.NET WebForms и хочу иметь дефис в имени моего свойства так же, как серверные элементы управления ASP.NET в разметке. Например, элемент управления Label имеет свойство «Размер шрифта» в разметке, например:

<asp:Label ID="Label1" Font-Size="small" Text="hi" runat="server" />

Как мне это сделать?

Ответы [ 2 ]

3 голосов
/ 22 сентября 2011

Просто используйте сложные свойства на вашем контроле:

public class MyControl: WebControl
{
    public Test()
    {
        // Make sure to initialize the complex property or you will get a NRE
        // when you try to set the Complex-Bar property in the webpage
        Complex = new Complex();
    }

    public Complex Complex { get; set; }
}

public class Complex
{
    public string Bar { get; set; }
}

, а затем:

<asp:MyControl runat="server" ID="myControl" Complex-Bar="foo bar" />
1 голос
/ 22 сентября 2011

Я добавил следующее, чтобы intellisense работал со сложным свойством:

[Category("Appearance")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[PersistenceMode(PersistenceMode.InnerProperty)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...