我有一個母版(MyBoxx.Master)引用2個用戶控件:獲取和內容頁投母版用戶控件訪問特定的UC物業
<%@ 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" %>
我的用戶控制「頁眉」除其他外包含搜索框。我想在訪問某些頁面時隱藏此搜索框。所以我加了一個布爾屬性,我的用戶控制和渲染的用戶控件時,使用此屬性來定是否顯示搜索框或不:
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;
}
}
然後我嘗試從內容頁訪問此「ShowSearch」屬性:
((uxHeader)Page.Master.FindControl("Header1")).ShowSearch = false;
問題是我在嘗試編譯時出現以下錯誤:
Error 15 The type or namespace name 'uxHeader' could not be found (are you missing a using directive or an assembly reference?)
的事情是我相信我得到它的工作和補償在某些時候,它可以在先前發佈的生產版本上運行。但現在我正在對同一站點中的其他內容進行更改,並且無法再編譯。
從各個崗位上的話,我嘗試添加以下行到我的內容頁面的aspx:
<%@ MasterType VirtualPath="~/MyBoxx.master"%>
<%@ Reference VirtualPath="~/MyBoxx.master" %>
沒有任何成功!我也看到了有關頁面生命週期的一些答案,但這不是問題,因爲我在編譯時遇到錯誤,而不是執行時的錯誤。
如果有人對我如何解決這個問題有任何建議,我會非常感激。
謝謝!
這部分'(uxHeader)Page.Master.FindControl'位於代碼隱藏或aspx文件中嗎?嘗試使用完全合格的名稱爲這個類 - 它會有幫助嗎?在Visual Studio中編譯期間,還是在瀏覽器中通過ASP.Net進行編譯期間,您是否收到編譯錯誤?所有類(主頁,頁面,控件)是否共享相同的程序集? – Lanorkin
此代碼位於代碼隱藏部分。構建過程中出現編譯錯誤。他們都有相同的組件。 我實際上是在一個可能的解決方案,當然會發佈一個答案,如果我成功了...... –
好吧,那麼你需要'使用my.namespace.here;'或'(my.namespace.here.uxHeader) Page.Master.FindControl' – Lanorkin