Если на главной странице есть метка с идентификатором label1, как мне управлять этим идентификатором на странице содержимого. Идентификатор не передается, поэтому я не могу его контролировать. Например, если у меня есть элемент управления с идентификатором contentLabel, я могу получить доступ к его коду, просто набрав contentLabel (что бы я ни делал)
Получить идентификатор объекта главной страницы на странице содержимого
comment
@antisanity Я думал, что это технический термин - смешно! Я тоже думал, что MasterType должен автоматически появляться в разметке. Я считаю, что они делают это, потому что вы можете динамически установить главную страницу в коде программной части, поскольку они слабо связаны. Выбор MasterPage при создании новой страницы служит только для установки MasterPage по умолчанию. Таким образом, объявить MasterType — это то же самое, что обещать не назначать динамические MasterPages (и взамен вы получаете вознаграждение в виде строго типизированного Intellisense).
- person MikeTeeVee   schedule 25.06.2012
Ответы (1)
Вот два варианта:
1: убедитесь, что aspx вашего контента указывает MasterType:
<%@ MasterType VirtualPath="~/yourMasterPageName.master" %>
Это позволяет вашей странице контента знать, чего ожидать от вашей мастер-страницы, и дает вам интеллектуальное представление. Итак, теперь вы можете пойти дальше и открыть свойство Text метки в коде программной части главной страницы.
public string ContentLabelText
{
get { return contentLabel.Text; }
set { contentLabel.Text = value; }
}
Затем вы можете получить к нему доступ на странице кода программной части вашей страницы контента, например:
Master.ContentLabelText = "hah!";
или, 2: вы можете получить доступ к ярлыку через FindControl() вот так:
var contentLabel = Master.FindControl("contentLabel") as Label;
person
canon
schedule
21.06.2012
есть ли лучшая практика или это единственный способ? просто любопытно
- person auwall12688; 22.06.2012
Спасибо, работает идеально. Я новичок в .NET. Некоторое время программировал, но никогда не занимался .NET или веб-разработкой.
- person auwall12688; 22.06.2012
@auwall12688 auwall12688 Идея сделать защищенный член таким образом неприятным для меня. См. описание непристойного разоблачения Джеффа Этвуда здесь: codinghorror.com/blog/2006. /05/code-smells.html. Если все, что вам нужно сделать, это изменить текст, я бы использовал геттер и сеттер только для текста. то есть общедоступная строка ContentText {get{return contentLabel.Text;} set{contentLabel.Text=value;}}
- person MikeTeeVee; 25.06.2012