2013-10-09 2 views
2

У меня есть главная страница.Как я могу установить свойство на главной странице из пользовательского элемента управления?

Я работаю над тестовой страницей, которая наследует главную страницу.

Основная страница имеет общедоступное свойство, доступное для включения и отключения видимости.

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

Обычно в коде страницы, который я бы сказал,

this.Master.ShowItem = false; 

Я понятия не имею, как получить доступ к этому объекту недвижимости из пользовательского элемента управления?

ответ

2

Вам просто нужно направить мастер на правильный тип. Предполагая, что тип вашего мастера является SiteMaster:

var master = this.Page.Master as SiteMaster; 
if(master != null) // cast failed, your master is a different type 
{ 
    master.ShowItem = false; 
} 

Так навигация:

+3

Больше нисходящего потока без комментариев. Упустил ли я что-то очевидное? –

+1

+1 выглядит хорошо для меня. – MikeSmithDev

+0

+1: Выглядит хорошо для меня тоже. –

-1

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

((Label)this.Page.Master.FindControl("IdOfTYurControl")).Visible = false; 
+2

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

+1

Но даже если это сработает, вы не знаете, будет ли он работать завтра, когда кто-то исправит ID-опечатку. Опираясь на ID на то, что доступно извне, это не так хорошо. Кроме того, таким образом вы подвергаете полный контроль, что, если кто-то решит изменить «Ярлык» на «TextBox» или так? У вас нет контроля. Самое главное, это не самообвинение. Свойство строго типизировано, имеет время компиляции, поддержку intellisense и, возможно, даже документацию. –

0

(СРЮ из-за моей репутации я не могу комментировать, так как ответ)

Подсказка. Убедитесь, что свойство, которое вы хотите получить на главной странице, будет общедоступным.

Исходя из этого, решение Тима Шмельтера отлично работает.

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

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