Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
49
Добавлен:
12.02.2016
Размер:
1.25 Mб
Скачать

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

  1. Перейдите к странице About.aspx или откройте ее.

    Примечание.

    Уже созданная страница Home содержит директиву @ MasterType, которая фактически привязывает ее к одной главной странице (Master1.master). Поэтому невозможно динамически назначать главные страницы странице Home и работать с другими созданными страницами вместо нее.

  2. В обозревателе решений щелкните правой кнопкой мыши файл About.aspx и выберите команду Просмотреть код, чтобы открыть редактор кода.

  3. Добавьте в определение класса следующий код:

    Язык Visual Basic 

    Копировать код

    Sub Page_PreInit(ByVal sender As Object, ByVal e As EventArgs) _

    Handles Me.PreInit

    If Not Session("masterpage") Is Nothing Then

    Me.MasterPageFile = CType(Session("masterpage"), String)

    End If

    End Sub

    Язык C# 

    Копировать код

    void Page_PreInit(Object sender, EventArgs e)

    {

    if(Session["masterpage"] != null)

    {

    this.MasterPageFile = (String) Session["masterpage"];

    }

    }

  4. Код задает значение свойства MasterPageFile текущей страницы значению в переменной сеанса, если имеет место. Этот код должен выполняться в обработчике Page_PreInit; он не может выполняться в обработчике, который запускается несколько позже, чем обработчик Page_PreInit (например, в обработчике Page_Init), потому что главная страница должна быть установлена так, чтобы страница могла создать ее экземпляр до любой следующей инициализации.

Теперь можно протестировать динамические главные страницы.

Тестирование динамических главных страниц

  1. На странице About.aspx нажмите клавиши CTRL+F5, чтобы запустить страницу.

Страница откроется в обозревателе, объединенная с главной страницей по умолчанию Master1.master.

  1. Щелкните ссылку Plain.

Страница будет отображена повторно, теперь объединенная со страницей Master2.master, которая не содержит фоновый цвет.

  1. Щелкните ссылку Colorful.

Страница снова отобразится с использованием Master1.master.

Замечания по использованию главных страниц

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

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

  • К членам на главной странице можно обратиться даже без включения директивы @ MasterType. Однако для этого необходимо привести свойство Page..::.Master к соответствующему типу главной страницы (свойство Master имеет значение null, если страница не содержит главной страницы). Дополнительные сведения см. в разделе Работа с главными страницами ASP.NET программными средствами.

На элементы управления можно ссылаться на главной странице с помощью метода Master.FindControls. Дополнительные сведения см. в разделе Работа с главными страницами ASP.NET программными средствами.

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

  • Сценарий изменения главных страниц упрощен, чтобы в пошаговом руководстве уделить внимание главным страницам. В реальном приложении, скорее всего, больше потребуется отобразить выбор макетов и затем сохранение предпочтений пользователя с помощью профилей. Дополнительные сведения см. в разделе Общие сведения о свойствах профилей ASP.NET.

  • Можно сконфигурировать веб-узел таким образом, чтобы все страницы использовали одну и ту же главную страницу. Можно было бы иметь несколько страниц, которые могли бы использовать альтернативную главную страницу, которую можно настроить в коде таким же образом, как показано в этом разделе пошагового руководства. Подробные сведения см. в главе "Определение области главных страниц" в разделе Общие сведения о главных страницах ASP.NET.

  • Необходимо добавить код со страницы Home.aspx на каждую страницу, где нужно переопределить главную страницу по умолчанию.

Соседние файлы в папке РОЗРОБЛЕННЯ WEB-СТОРІНОК