سلام
چند سوال درباره مسترپیج داشتم
1) آیا پیج لود در مستر پیج به ازای هر بار اجرای صفحه هات اجرا میگردد؟ یعنی page1 , page2 ای برای مسترپیج داشته باشیم . با هربار باز کردن page 1 , page2 پیج لود مربوط به مسترپیج اجرا میگردد؟
2) آیا تابع ای وجود داره که فقط یک بار و اون هم با ایجاد مسترپیج اون تابع ایجاد بشه و دیگر با رفتن به صفحات دیگر اجرا نشه؟
سلام
بله تمامی صفحاتی که از masterpage ارثبری می کنند، زمان لود شدن pageload مسترپیج را هم صدا میزنند. راهی برای جلوگیری از لود شدن چند باره pageload وجود ندارد مگر اینکه از ajax استفاده کنید یا بخش ها مورد نظر خود را به صورت usercontrol بسازید و آنها را cash کنید.
تشکر میشه بگید از
اژاکس
و
usercontrol
چگونه باید انجام بدم؟
من میخوام برای بار اول که لود میشه یکسری اطلاعات از دیتابیس خونده بشه و منو را تشکیل بدم.
-----------------
شما می توانید منوی خودتان را توسط یکUser Control تعریف کنید و آن را داخل مستر پیچ قرار دهید و User Control را OutPutCash کنید مانند کد زیر :
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MenuMain.ascx.cs" Inherits="WebApplication4.MenuMain" %> <%@ OutputCache Duration="30" VaryByParam="None" %> <ul> <li>Menu1</li> <li>Menu2</li> <li>Menu3</li> <li>Menu4</li> <li><asp:Literal runat="server" ID="datetTime"></asp:Literal></li> </ul>
تصویر زیر نشان دهنده آن است که منو شما تاریخ 12:40:02 را لود کرده و تا 30 ثانیه بعد لود جدیدی صورت نمی گیرد ولی تاریخ زیر Main Page داخل صفحه Default قرار دارد و با هر بار Postbackشدن مجددا لودمیشود. شما می توانید Duration یا زمان Cash شدن User Control را بالاتر ببرید.
نمونه پروژه را ضمیمه همین تاپیک میکنم.
موفق باشید.
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)