我創建了MasterNavigator面板,該面板位於網頁用戶控件(BuildMenu.ascx)的頂部。我在填充母版頁加載UC菜單:如何在Master Page中只加載一次菜單?
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="IntermMaster.master.cs" Inherits="MyProject.IntermMaster" EnableViewState="true" %>
<%@ Register src="Utils/BuildMenu.ascx" tagname="BuildMenu" tagprefix="uc1" %>
>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<uc1:BuildMenu ID="BuildMenu2" runat="server" />
</div>
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
這是加載在回發事件:
BuildMenu.ascx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// Fill Menu from DataBase (Compare SiteMap...)
}
每次回來後BuildManu.ascx加載每次這真的讓我感到無聊。我該如何解決它。我想除非你想用幀只做一次負載BuildMenu.ascx(在母版頁)
該控件總是再次加載,如果只是審查是否有任何改變。呈現的控件被緩存,以防萬一沒有任何變化,將不再需要花費更多的計算時間來顯示控件,它將使用緩存的版本。你不應該擔心這個,緩存會保存你的性能,並且如果你的控件發生了一些變化,你不必刷新緩存來查看變化。我個人認爲這是預期的行爲恕我直言。明顯打開討論... – Bazzz 2011-01-31 08:06:05
@Bazzz;我同意你的意見,請稍等一下。我認爲這真的是胡說八道。爲什麼我可以只填寫內容的地方持有人...... – Penguen 2011-01-31 12:17:12