/ / Jak ustalić bieżącą wartość Page.Title z UserControl - c #, asp.net, user-control, master-pages

Jak ustalić aktualną wartość strony. Title z UserControl - c #, asp.net, kontrolki użytkownika, strony wzorcowe

Mam MasterPage, kilka stron z treścią - każda ze stron ma UserControl.

W MasterPage ustawiam Page.Title programowo w oparciu o Page_Init „Request.UserAgent.Contains ....”, aby strony zawartości miały różne tytuły oparte na tym.

Każda strona treści ma tytuł ustawiony na pusty (Title = „”), ale gdy strona się renderuje, pragmatycznie wygenerowany tytuł strony pojawia się na karcie przeglądarki.

W kodzie UserControl z tyłu muszę uzyskać dostęp do strony treści (strony nadrzędnej). Tytuł i na tej podstawie wyświetlić trochę tekstu:

If(Page.Title == "something")
{
Lable.Text = "something";
}
else if (Page.Title == "somethingElse")
{
lable.Text = "somethingElse";
}

Jednak moja etykieta pozostaje pusta podczas korzystania z tego kodu. W jaki sposób muszę określić bieżącą stronę. TYTUŁ, na jaki ustawił ją MasterPage?

C # Proszę

Odpowiedzi:

1 dla odpowiedzi № 1
    If(this.Parent.Page.Title == "something")
{
Label.Text = "something";
}
else if (this.Parent.Page.Title == "somethingElse")
{
label.Text = "somethingElse";
}

możesz także użyć this.Master.Page.Title jeśli ZAWSZE ustawiasz tytuł na stronie głównej.

Pamiętaj też, że każda strona jako Koło życia. Jeśli sprawdzasz tytuł przed ustawieniem tytułu, zwróci pusty ciąg.

Aby przetestować kod, spróbuj na stałe zakodować tytuł wstrona wzorcowa i sprawdź, czy Twój kod działa. Gdy wiesz, że kod w rzeczywistości pobiera tytuł od rodzica, musisz upewnić się, że ustawiasz tytuł strony PRZED próbą sprawdzenia go.


0 dla odpowiedzi nr 2

this.Master.Page.Title powinien dać ci tytuł strony wzorcowej, który możesz przetestować i ustawić na cokolwiek zechcesz.

this.Parent.Page.Title po prostu daje kontrolę rodzicielską Strony, która niekoniecznie musi być Mistrzem.