0
我重構一些代碼,我得到了到這樣的做法:從其他類訪問頁面上的頁面/控件的最佳實踐?
protected void Page_Init(object sender, EventArgs e)
{
Logger.Info("Page Initialization.");
//Provides highlighting/docking functionality at the start, but overshadows controls in more complex scenarios.
RadDockZone1.Visible = (RadControlStates.SplitterStates.Count == 0);
ControlRegeneration.RegenerateReportMenu(lstBxHistorical, lstBxCustom);
ControlRegeneration.RegeneratePaneChildren(RadPane2);
ControlRegeneration.RegenerateDockZones(Page);
ControlRegeneration.RegenerateDocks(RadDockLayout1, RadDock_Command, UpdatePanel1);
}
我想知道,如果它是很好的做法,通過頁和頁面控制,以這樣的其他功能。
我正在考慮創建一個單例,它將持有對相關頁面控件的引用,然後通過該實例訪問控件。
喜歡的東西...
public class DashboardPageControlsRepository
{
private static readonly DashboardPageControlsRepository instance = new DashboardPageControlsRepository();
private DashboardPageControlsRepository() { }
private Control myPanel;
public static DashboardPageControlsRepository Instance
{
get { return instance; }
}
public void SetPageState(Page page)
{
myPanel = Utilities.FindControlRecursive(page, "UpdatePanel1")
}
public Control Panel
{
get { return myPanel; }
}
}
然後,頁面初始化期間任何事情之前發生了,我會去和搶我的所有控件 - 讓我經過這裏訪問他們,而不是將它們傳遞下去。
有關如何處理這個問題的任何想法?