Сложный тип внутри настраиваемого элемента управления в ASP.NET 4.0 - PullRequest
0 голосов
/ 22 июля 2011

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

Пример пользовательского управляющего кода:

public class MyCustomControl : Control, IStylesheet
{
        [
            Bindable(true),
            Category("Appearance"),
            DefaultValue(""),
            Description("FullName"),
            DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
            PersistenceMode(PersistenceMode.InnerProperty),
        ]
        public FullName MyFullName {get; set;}

        protected override void Render(HtmlTextWriter writer)
        {
            // I want to access MyFullName from .aspx here
        }
}

public class FullName
{
    public string Firstname {get; set;}
    public string Lastname {get; set;}
}

.aspx разметка

<Namespace:MyCustomControl runat="server"">
    <MyFullName Firstname="abc" Lastname="def" /> 
</Namespace:MyCustomControl>

1 Ответ

1 голос
/ 22 июля 2011

Я предполагаю, что вы не можете получить значения свойства FirstName / lastname, которое установлено в разметке, из метода визуализации пользовательского элемента управления.

Попробуйте эту статью.Ниже приведены выдержки из статьи, применимые к вашей ситуации.

Свойству MyFullName и свойствам класса MyFullName необходимы атрибуты времени разработки, чтобы включить постоянство в тегах элемента управления, как показано в следующем примере:

 <aspSample:MyCustomControl >
      <MyFullName FirstName="Jody" LastName="Foster" />
    </aspSample:MyCustomControl>

Элемент управления MyCustomControl сохраняет свои простые свойства в словаре ViewState.Однако элемент управления MyCustomControl должен реализовывать настраиваемое управление состоянием для свойства FullName для управления состоянием свойства через обратные передачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...