Каков наилучший подход к заполнению элемента управления главной страницы, который зависит от страницы содержимого?

2

У меня есть главная страница с именем SampleMaster.master, и эта страница содержит элемент управления Repeater

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

Метод извлечения данных Tags.GetTags() работает, но я не знаю, как лучше всего использовать элемент Repeater на главной странице в зависимости от того, какая страница содержимого.

Будет ли код находиться в коде страницы главной страницы или код страницы содержимого?

Теги:
master-pages

3 ответа

5
Лучший ответ

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

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();
  • 0
    Хорошее решение Вам нужно будет привести this.Page к IMyTaggablePage, чтобы вызвать метод.
  • 0
    Благодарю. Пропустил это.
Показать ещё 3 комментария
0

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

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

0

Вы можете открыть функциональные возможности своей главной страницы через свою страницу контента, добавив следующие файлы aspx в контентные страницы:

<%@ MasterType VirtualPath="~/MasterPage.master" %>

Затем на странице содержимого вы сможете получить доступ к любым способам, которые вы открыли на главной странице.

Итак, у вас на главной странице будет такой метод, как:

public void BuildMyCustomStuff(YouInputType in)
{
    // Do something with the data passed in
}

Затем на странице содержимого вы вызовете функцию с помощью:

Master.BuildMyCustomStuff(dataIn);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню