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

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

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

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

Будет ли код находиться в коде страницы мастер-страницы сзади или в коде страницы контента позади?

Ответы [ 3 ]

5 голосов
/ 21 августа 2009

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

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 голосов
/ 21 августа 2009

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

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

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

Таким образом, ваша главная страница будет иметь такой метод:

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

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

Master.BuildMyCustomStuff(dataIn);
0 голосов
/ 21 августа 2009

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

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

...