ورود

View Full Version : سوال: چگونگی جلوگیری از کش شدن UserControl ؟



sadegh.rj
دوشنبه 20 خرداد 1387, 20:38 عصر
با سلام ، چطور میشه از کش شدن userControl در صفحاتی که کش شدن جلوگیری کرد؟
به عنوان مثال یک uc برای نمایش سبد خرید دارم که نباید کش بشه.و یا موقعی که کترل LoginView رو که در یوزر کنترل قرار داره در مستر پیج قرار میدم .
با تشکر

sadegh.rj
سه شنبه 21 خرداد 1387, 17:29 عصر
از کدهای زیر در masterpage استفاده کردم اما فایده نداره؟ اساتید لطفا راهنمایی کنند.


Dim wuc1 AsNew WebUserControl
wuc1 = FindControl("WebUserControl1")
Me.Cache.Remove(wuc1.UniqueID)

sadegh.rj
چهارشنبه 22 خرداد 1387, 12:40 عصر
یعنی راهی نیست که بشه از کش شدن یک یوزر کنترل جلوگیری کرد؟!!!

shahroozj
چهارشنبه 22 خرداد 1387, 15:11 عصر
اينو بگذار تو قسمت head html ببين مشكلت حل ميشه


<meta http-equiv="Pragma" content="no-cache"/>

sadegh.rj
چهارشنبه 22 خرداد 1387, 23:38 عصر
با تشکر از راهنمایی شما
اون META تگ با لا جواب نداد

hesam_a110
چهارشنبه 22 خرداد 1387, 23:48 عصر
درود بر شما
در صورتی که از masterpagاستفاده می کنید
پیشنهاد بنده این است که سبد خرید خود را مستقیما در masterpage بگذارید و با یک تابع public اون تابع را از صفحه های دیگر صدا بزنید
یا نه بازهم از uc استفاده می کنید تابع public را در آن قرار دهید
نمونه سایت هم http://eshop.rayaco.com
پیروز و نیک باشید

sadegh.rj
پنج شنبه 23 خرداد 1387, 19:21 عصر
در صورتی که از masterpagاستفاده می کنید

باتشکر : UC رو در مستر قرار دادم که در تمام صفحات سبد خرید قابل دسترسی باشه


با یک تابع public اون تابع را از صفحه های دیگر صدا بزنید
یا نه بازهم از uc استفاده می کنید تابع public را در آن قرار دهید

من درست متوجه روش کار نشدم.لطفا بیشتر توضیح بدید.

miladr
جمعه 24 خرداد 1387, 02:01 صبح
اینو بالای user controlet اضافه کن

<%@ OutputCache Duration="0" %>

sadegh.rj
جمعه 24 خرداد 1387, 15:41 عصر
باتشکر فراوان . اما مقدار صفر برای Duration قابل قبول نیست . :افسرده:
اینم Error برنامه :


Error 1 The 'duration' attribute must be set to a positive integer value.

miladr
جمعه 24 خرداد 1387, 15:48 عصر
<%@ OutputCache Location="None" VaryByParam="None" %>
این چی اینو تست کن

sadegh.rj
جمعه 24 خرداد 1387, 16:36 عصر
ممنون از پیگیری شما . ولی متاسفانه خاصیت Location در userControl قابل تعریف نیست.

hesam_a110
شنبه 25 خرداد 1387, 08:52 صبح
درود بر شما
پیشنهاد بنده اینه که شما موارد موجود در uc را در masterpage بگذارید و بعد با یک تابع public آن را مقدار دهی کنید و در صفحات دیگر آن را باکد زیر صدا بزنید


کد درون masterpage
public void bindGrid()
{
select date
GridBind
}



کد صفحات درونی
MasterPage master = new MasterPage();
master.bindGrid();

sadegh.rj
یک شنبه 26 خرداد 1387, 16:37 عصر
با تشکر مجدد. طبق فرمایش شما کدها را بصورت زیر نوشتم: اما برنامه موقع اجرا وقتی به اولین خط bindGrid میرسه پیغام خطای زیر را میده
NullRefrence not set to an instance of an object
Object reference not set to an instance of an object


کدهای masterpage
Public Sub bindGrid()
Label1.Text = DateTime.Now.ToString
End Sub




کدهای صفحه Default.aspx
Protected Sub Page_Load(...
Dim master As MasterPage = New MasterPage
master.bindGrid()

sadegh.rj
چهارشنبه 29 خرداد 1387, 17:27 عصر
یعنی راهی نداره ؟!!!
یک مقاله پیدا کردم که فکر کنم به این موضوع مربوط بشه اما درست متوجه روش کار نشدم.
http://www.nikhilk.net/PostCacheSubstitution.aspx
اساتیدی که در این زمینه تجربه دارند لطفا راهنمایی کنند که اصولا میشه همچین کاری کرد یا نه؟
با تشکر مجدد