zoukankan      html  css  js  c++  java
  • 用参数来控制用户控件的缓存

    用参数来控制用户控件的缓存

    左直拳

     

     

    用户控件有个好处就是可以利用缓存,在不实施缓存的页面中实现部分缓存。

     

    可是有时候同一个用户控件,放在不同的页面,又需要它可以表现出不同的样式,或提供不同的功能。

     

    这时跟缓存有冲突吗?

     

    伟大的微软告诉我们,可以在控件缓存设置中声明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时,就各自获得一份缓存,并且按照不同的要求,表现出不同的样式和动作。

     
  • 相关阅读:
    网络七层协议之部分协议详解
    C/C++书籍分享(百度网盘版)
    poi导出excel实例
    java map去除空值和null,等一些好用的工具类
    mysql查询出来的sum结果后边有.0如何去除
    java form 表单提交多条数据到后台!
    使用jsp链接jdbc数据库并将数据显示出来
    对接短信平台wsdl获取代码方式!并使用
    Flutter! 记录一下艰难的Flutter+vscode+真机,第一次调试成功
    微信公众号开发-微信公众号网页H5静默授权!!!
  • 原文地址:https://www.cnblogs.com/leftfist/p/4258280.html
Copyright © 2011-2022 走看看