У меня есть главная страница с именем SampleMaster.master, и эта страница содержит элемент управления Repeater
Элемент Repeater будет использоваться для отображения соответствующих тегов, связанных с каждой страницей контента, и теги будут отличаться между страницами контента
Метод извлечения данных Tags.GetTags() работает, но я не знаю, как лучше всего использовать элемент Repeater на главной странице в зависимости от того, какая страница содержимого.
Будет ли код находиться в коде страницы главной страницы или код страницы содержимого?
Я предлагаю выставлять свойство или метод на дочерней странице, которая передает главную страницу отображаемым тегам. Например
partial class myPage : IMyTaggablePage
{
// the following is an interface member
public List<string> GetTags()
{
return this.Taglist; // assuming taglist was populated somewhere on this page.
}
}
Затем на главной странице вы можете написать что-то вроде:
if (this.Page is IMyTaggablePage)
var tags = (Page as IMyTaggablePage).GetTags();
Вы можете поместить его на главную страницу, если сможете. В идеале ваша страница контента не должна знать родителя и должна предполагать, что ее можно использовать где угодно.
Это приведет к более детальному, многоразовому дизайну для ваших страниц контента.
Вы можете открыть функциональные возможности своей главной страницы через свою страницу контента, добавив следующие файлы aspx в контентные страницы:
<%@ MasterType VirtualPath="~/MasterPage.master" %>
Затем на странице содержимого вы сможете получить доступ к любым способам, которые вы открыли на главной странице.
Итак, у вас на главной странице будет такой метод, как:
public void BuildMyCustomStuff(YouInputType in)
{
// Do something with the data passed in
}
Затем на странице содержимого вы вызовете функцию с помощью:
Master.BuildMyCustomStuff(dataIn);