2010-09-08 5 views
0

У меня есть UserControl, который содержит DropDownList и ObjectDataSource. Этот элемент управления используется в разметке моего MasterPage.Как скрыть внутренние элементы управления UserControl в конструкторе?

В конструкторе ContentPage, который использует этот MasterPage, я могу увидеть DropDownList и ObjectDataSource. Посмотреть на себя.
alt text

Я знаю, что другие элементы управления (например, ComponentArt: Grid) только показать, как сам себе внешний контейнер и скрыть внутренние элементы управления.

Я думаю, что это как-то достижимо с атрибутами. Какие из них мне нужно установить?

ответ

1

Я предполагаю, что элемент управления, на который вы ссылаетесь, ComponentArt: Grid, имеет связанный с ним ControlDesigner, который может делать что угодно, включая редактируемые области разработки и настраиваемые меню действий (меню, связанное со стрелкой в ​​верхнем правом углу) ,

Однако Visual Studio не выполняет [последний раз, когда я пытался] выполнять конструктор элементов управления для UserControls, поэтому вы не можете легко управлять этим. В объекте UserControlDesigner есть много волшебства, в том числе разбор кода html. Тем не менее, я никогда не видел фактической компиляции файла codebehind, где будет указан атрибут ControlDesigner.

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

+0

Переопределение дизайнера UserControl не представляется возможным. Я отмечу этот ответ как принятый – citronas

1

Я не очень хорошо знаком с WebForms, но BrowsableAttribute может быть тем, что вы ищете. Также посмотрите на DesignTimeVisibleAttribute.

System.ComponentModel namespace имеет ряд других атрибутов, которые могут делать то, что вам нужно.

+0

BrowsableAttribute предназначен для отображения свойств/событий в окне свойств и не сделает ничего для области просмотра. – sisve

0

Visual studio не поддерживает это. В тот момент, когда вы укажете слово «пользовательский контроль», вещь идет бесперк и отображает все, что вы на нее наложили.

К счастью, может влиять на визуализацию серверных элементов управления. Другими словами, вы можете обмануть дизайнера Visual Studio, используя это. Код, в котором вы нуждаетесь, находится здесь: http://www.codeproject.com/Tips/773145/Hiding-contents-in-ASP-Net-user-control-designer

Смежные вопросы