Как инициализировать свойства моего веб-элемента управления во время разработки? - PullRequest
0 голосов
/ 31 октября 2009

Мне нужен способ инициализации свойств моего веб-элемента управления, когда он попадает в область конструктора. Под «инициализацией» я подразумеваю: если мой элемент управления имеет свойство Prop1. Мне нужно присвоить значение Prop1, и мне нужно, чтобы это значение сохранялось в ASPx.

Я попробовал следующее:

  1. Реализация InitializeNewComponent на моем ControlDesigner: этот метод никогда не вызывается. Кажется, ошибка.
  2. Реализация инициализации на моем ControlDesigner: этот метод вызывается, но каким-то образом Visual Studio не позволяет мне изменять свойство элемента управления на этом этапе.
  3. Создайте обработчик для IComponentChangeService.ComponentAdded (который должен вызываться каждый раз при создании любого элемента управления). Этот обработчик никогда не вызывается.

Мой вопрос: как мне инициализировать мои управляющие свойства?

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

PropertyDescriptor descriptor = TypeDescriptor.GetProperties(this.Component)["Prop1"];
descriptor.SetValue("Value");

Редактировать

Я забыл упомянуть, что не могу использовать ToolBoxData, потому что мне нужно выполнить обработку, чтобы определить значение свойства

Ответы [ 2 ]

1 голос
/ 31 октября 2009
[ToolboxData("<{0}:MyControl runat=\"server\" Prop1=\"Value\" />")]
public class MyControl
{
}
0 голосов
/ 31 октября 2009
descriptor.SetValue("Value");

Нет такого метода. MSDN Я также не очень понимаю, почему вы используете рефлексию для установки свойства известного типа?

Может быть, это вам немного поможет: Ускоренный курс по разработке элементов управления ASP.NET: функции и возможности времени разработки

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