用参数来控制用户控件的缓存
2007-09-30 17:43
218 查看
用参数来控制用户控件的缓存
左直拳
用户控件有个好处就是可以利用缓存,在不实施缓存的页面中实现部分缓存。
可是有时候同一个用户控件,放在不同的页面,又需要它可以表现出不同的样式,或提供不同的功能。
这时跟缓存有冲突吗?
伟大的微软告诉我们,可以在控件缓存设置中声明VaryByControl 或 VaryByParam。
VaryByParam 我还没用过,估计就是根据包含该控件的页面中指定的参数值,如?f=1&u=0之类,针对不同值,缓存不同的版本。
我用的是VaryByControl ,在控件内或包含该控件的页面内放置一个其他控件,如文本框(textbox),VaryByControl=“该控件的ID”,这样这个控件的值不同,用户控件的缓存就不同。
然而直接访问用户控件内部的控件是不方便的,或者也不严谨。可以在用户控件内设置一个属性,通过该属性来间接访问和控制该控件。如:
页面:
<%@ OutputCache Duration="1800" VaryByControl="txtCssStyle" Shared="true"%>
……
<input type="hidden" id="txtCssStyle" runat="server" value="" />
……
<%if (CssStyle != "2")
{ %>
你老豆
<%}else{%>
你老母
<%}%>
代码:
#region 属性
public string CssStyle
{
get
{
return txtCssStyle.Value;
}
set
{
txtCssStyle.Value = (value == "2") ? "2" : "";
}
}
#endregion
调用页面1:
<uc2:DirectShow ID="DirectShow1" runat="server" CssStyle="1" />
调用页面2:
<uc2:DirectShow ID="DirectShow1" runat="server" CssStyle="2" />
这样在第一次打开页面1和页面2时,就各自获得一份缓存,并且按照不同的要求,表现出不同的样式和动作。
左直拳
用户控件有个好处就是可以利用缓存,在不实施缓存的页面中实现部分缓存。
可是有时候同一个用户控件,放在不同的页面,又需要它可以表现出不同的样式,或提供不同的功能。
这时跟缓存有冲突吗?
伟大的微软告诉我们,可以在控件缓存设置中声明VaryByControl 或 VaryByParam。
VaryByParam 我还没用过,估计就是根据包含该控件的页面中指定的参数值,如?f=1&u=0之类,针对不同值,缓存不同的版本。
我用的是VaryByControl ,在控件内或包含该控件的页面内放置一个其他控件,如文本框(textbox),VaryByControl=“该控件的ID”,这样这个控件的值不同,用户控件的缓存就不同。
然而直接访问用户控件内部的控件是不方便的,或者也不严谨。可以在用户控件内设置一个属性,通过该属性来间接访问和控制该控件。如:
页面:
<%@ OutputCache Duration="1800" VaryByControl="txtCssStyle" Shared="true"%>
……
<input type="hidden" id="txtCssStyle" runat="server" value="" />
……
<%if (CssStyle != "2")
{ %>
你老豆
<%}else{%>
你老母
<%}%>
代码:
#region 属性
public string CssStyle
{
get
{
return txtCssStyle.Value;
}
set
{
txtCssStyle.Value = (value == "2") ? "2" : "";
}
}
#endregion
调用页面1:
<uc2:DirectShow ID="DirectShow1" runat="server" CssStyle="1" />
调用页面2:
<uc2:DirectShow ID="DirectShow1" runat="server" CssStyle="2" />
这样在第一次打开页面1和页面2时,就各自获得一份缓存,并且按照不同的要求,表现出不同的样式和动作。
相关文章推荐
- 用参数来控制用户控件的缓存
- 如何为用户控件增加自定义参数缓存
- zTree组织机构树(涉及技术包含:zTree参数配置,ajax框架,jquery惊细控制对象,用户自定义控件,webmethod)
- [转]ASP.NET 缓存(十二)--根据参数缓存用户控件的多个版本
- 如何在webform.aspx.cs中控制用户控件的属性
- [转]ASP.NET 缓存(十三)--通过使用声明性的属性缓存用户控件的多个版本
- ASP.Net 更新页面输出缓存的几种方法(包括用户控件,iframe,页面缓存等)(转)
- 如何给自定义用户控件传递参数
- Asp.net 权限控制 利用用户控件include到页面
- 用户控件的缓存技术之二【共三篇】
- ASP.NET用户控件缓存造成的BUG一例
- web页面中给用户控件传递参数
- 根据条件控制参数控件是否显示(可用)
- 用户控件如何控制ASPX页面的控件
- 如何向用户控件传递参数
- 默认虚拟主机,用户认证,域名跳转,访问日志,缓存时间,防盗链,访问控制
- asp.net中调用用户控件中的函数并传递参数
- 给自定义用户控件传递参数
- iOS-控件响应用户控制事件之事件处理
- 调用用户控件时传参数