Uzyskaj i rzuć Masterpage UserControl ze strony treści, aby uzyskać dostęp do określonej właściwości UC
Mam MasterPage (MyBoxx.Master) odwołujący się do 2 kontroli użytkownika:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MyBoxx.master.cs" Inherits="MyBoxxMaster" %>
<%@ Register TagPrefix="uc1" TagName="Header" Src="Header.ascx" %>
<%@ Register TagPrefix="uc1" TagName="Footer" Src="Footer.ascx" %>
Moja kontrola użytkownika „Nagłówek” zawiera między innymi pole wyszukiwania. Chcę ukryć to pole wyszukiwania podczas odwiedzania niektórych stron. Dlatego do kontrolki użytkownika dodałem właściwość logiczną i używam tej właściwości podczas renderowania kontrolki użytkownika, aby określić, czy wyświetlać pole wyszukiwania, czy nie:
public partial class uxHeader : System.Web.UI.UserControl
{
bool _showSearch = true;
public bool ShowSearch
{
get { return _showSearch; }
set { _showSearch = value; }
}
[...]
protected void Page_Load(object sender, EventArgs e)
{
[...]
searchBox.Visible = _showSearch;
}
}
Następnie próbuję uzyskać dostęp do właściwości „ShowSearch” ze strony treści:
((uxHeader)Page.Master.FindControl("Header1")).ShowSearch = false;
Problem polega na tym, że podczas próby kompilacji pojawia się następujący błąd:
Error 15 The type or namespace name 'uxHeader' could not be found (are you missing a using directive or an assembly reference?)
Chodzi o to, że w pewnym momencie udało mi się go uruchomić i skompilować, ponieważ działa na poprzednio wydanej wersji produkcyjnej. Ale teraz robię zmianę na coś innego w tej samej witrynie i nie mogę się już skompilować.
Z różnych postów na SO próbowałem dodać następujące wiersze do mojej strony treści: aspx:
<%@ MasterType VirtualPath="~/MyBoxx.master"%>
<%@ Reference VirtualPath="~/MyBoxx.master" %>
Bez powodzenia! Widziałem także kilka odpowiedzi na temat cyklu życia strony, ale nie może to być problemem tutaj, ponieważ pojawia się błąd podczas kompilacji, a nie błąd podczas wykonywania.
Gdyby ktoś miał jakieś rady, jak mogę to naprawić na dobre, byłbym wdzięczny.
Dzięki !