<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.NET_Tutorial%2FCache%2FPage_Output_Cache</id>
		<title>ASP.NET Tutorial/Cache/Page Output Cache - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://nfex.ru/index.php?action=history&amp;feed=atom&amp;title=ASP.NET_Tutorial%2FCache%2FPage_Output_Cache"/>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Cache/Page_Output_Cache&amp;action=history"/>
		<updated>2026-04-29T20:07:13Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/Cache/Page_Output_Cache&amp;diff=2903&amp;oldid=prev</id>
		<title> в 15:30, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Cache/Page_Output_Cache&amp;diff=2903&amp;oldid=prev"/>
				<updated>2010-05-26T15:30:57Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 15:30, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://nfex.ru/index.php?title=ASP.NET_Tutorial/Cache/Page_Output_Cache&amp;diff=2904&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://nfex.ru/index.php?title=ASP.NET_Tutorial/Cache/Page_Output_Cache&amp;diff=2904&amp;oldid=prev"/>
				<updated>2010-05-26T11:57:26Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Creating Page Output Cache Profiles==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Configure Page Output Caching in a web configuration file and apply the settings to multiple pages. &lt;br /&gt;
You can set the same caching properties in a Cache Profile as you can set in an individual page&amp;quot;s &amp;lt;%@ OutputCache %&amp;gt; directive. &lt;br /&gt;
A Cache Profile named Cache1Hour that caches a page for one hour.&lt;br /&gt;
File: Web.Config&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;system.web&amp;gt;&lt;br /&gt;
    &amp;lt;caching&amp;gt;&lt;br /&gt;
      &amp;lt;outputCacheSettings&amp;gt;&lt;br /&gt;
        &amp;lt;outputCacheProfiles&amp;gt;&lt;br /&gt;
          &amp;lt;add name=&amp;quot;Cache1Hour&amp;quot; duration=&amp;quot;3600&amp;quot; varyByParam=&amp;quot;none&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/outputCacheProfiles&amp;gt;&lt;br /&gt;
      &amp;lt;/outputCacheSettings&amp;gt;&lt;br /&gt;
    &amp;lt;/caching&amp;gt;&lt;br /&gt;
  &amp;lt;/system.web&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
&lt;br /&gt;
File: Default.aspx&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ OutputCache CacheProfile=&amp;quot;Cache1Hour&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
  &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Output Cache Profile&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;%= DateTime.Now.ToString(&amp;quot;T&amp;quot;) %&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Manipulating the Page Output Cache Programmatically==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
HttpCachePolicy class can perform all the tasks that you can perform with the &amp;lt;%@ OutputCache %&amp;gt; directive. &lt;br /&gt;
The page is cached on the browser, proxy servers, and web server for 15 seconds.&lt;br /&gt;
File: Default.aspx&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    void Page_Load()&lt;br /&gt;
    {&lt;br /&gt;
        Response.Cache.SetCacheability(HttpCacheability.Public);&lt;br /&gt;
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(15));&lt;br /&gt;
        Response.Cache.SetMaxAge(TimeSpan.FromSeconds(15));&lt;br /&gt;
        Response.Cache.SetValidUntilExpires(true);&lt;br /&gt;
        Response.Cache.SetLastModified(DateTime.Now);&lt;br /&gt;
        Response.Cache.SetOmitVaryStar(true);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Program OutputCache&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;%= DateTime.Now.ToString(&amp;quot;T&amp;quot;) %&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;lt;a href=&amp;quot;Default.aspx&amp;quot;&amp;gt;Request this Page&amp;lt;/a&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== OutputCache Duration=&amp;quot;20&amp;quot; VaryByParam=&amp;quot;None&amp;quot;==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; CodeFile=&amp;quot;Default.aspx.cs&amp;quot; Inherits=&amp;quot;OutputCaching&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ OutputCache Duration=&amp;quot;20&amp;quot; VaryByParam=&amp;quot;None&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.1//EN&amp;quot; &amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Untitled Page&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
        &amp;lt;asp:Label ID=&amp;quot;lblDate&amp;quot; runat=&amp;quot;server&amp;quot; EnableViewState=&amp;quot;False&amp;quot; Font-Bold=&amp;quot;True&amp;quot; Font-Size=&amp;quot;X-Large&amp;quot;&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Default.aspx.cs&lt;br /&gt;
using System;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Configuration;&lt;br /&gt;
using System.Collections;&lt;br /&gt;
using System.Web;&lt;br /&gt;
using System.Web.Security;&lt;br /&gt;
using System.Web.UI;&lt;br /&gt;
using System.Web.UI.WebControls;&lt;br /&gt;
using System.Web.UI.WebControls.WebParts;&lt;br /&gt;
using System.Web.UI.HtmlControls;&lt;br /&gt;
public partial class OutputCaching : System.Web.UI.Page&lt;br /&gt;
{&lt;br /&gt;
    protected void Page_Load(object sender, EventArgs e)&lt;br /&gt;
    {&lt;br /&gt;
        lblDate.Text = &amp;quot;The time is now:&amp;lt;br /&amp;gt;&amp;quot;;&lt;br /&gt;
        lblDate.Text += DateTime.Now.ToString();&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Varying the Output Cache by a Custom Function==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
You create the custom function in the Global.asax file by overriding the GetVaryByCustomString() method. &lt;br /&gt;
File: Global.asax&lt;br /&gt;
&amp;lt;%@ Application Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    public override string GetVaryByCustomString(HttpContext context, string custom)&lt;br /&gt;
    {&lt;br /&gt;
        if (String.rupare(custom, &amp;quot;css&amp;quot;) == 0)&lt;br /&gt;
        {&lt;br /&gt;
            return Request.Browser.SupportsCss.ToString();&lt;br /&gt;
        }&lt;br /&gt;
        return base.GetVaryByCustomString(context, custom);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
File: Default.aspx&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ OutputCache Duration=&amp;quot;3600&amp;quot; VaryByParam=&amp;quot;none&amp;quot; VaryByCustom=&amp;quot;css&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    void Page_Load()&lt;br /&gt;
    {&lt;br /&gt;
        if (Request.Browser.SupportsCss)&lt;br /&gt;
            pnlCss.Visible = true;&lt;br /&gt;
        else&lt;br /&gt;
            pnlNotCss.Visible = true;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Vary By Custom&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Panel&lt;br /&gt;
        id=&amp;quot;pnlCss&amp;quot;&lt;br /&gt;
        Visible=&amp;quot;false&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;span style=&amp;quot;font-weight:bold&amp;quot;&amp;gt;Hello!&amp;lt;/span&amp;gt;&lt;br /&gt;
    &amp;lt;/asp:Panel&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Panel&lt;br /&gt;
        id=&amp;quot;pnlNotCss&amp;quot;&lt;br /&gt;
        Visible=&amp;quot;false&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;b&amp;gt;Hello!&amp;lt;/b&amp;gt;&lt;br /&gt;
    &amp;lt;/asp:Panel&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Varying the Output Cache by Browser==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ OutputCache Duration=&amp;quot;3600&amp;quot; VaryByParam=&amp;quot;none&amp;quot; VaryByCustom=&amp;quot;browser&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
   &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Vary By Browser&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;%= DateTime.Now.ToString(&amp;quot;T&amp;quot;) %&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;%= Request.UserAgent %&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Varying the Output Cache by Control==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
File: MasterDetails.aspx&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ OutputCache Duration=&amp;quot;3600&amp;quot; VaryByControl=&amp;quot;dropCategories&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
  &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Master/Details&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;%= DateTime.Now.ToString(&amp;quot;T&amp;quot;) %&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:DropDownList&lt;br /&gt;
        id=&amp;quot;dropCategories&amp;quot;&lt;br /&gt;
        DataSourceID=&amp;quot;srcCategories&amp;quot;&lt;br /&gt;
        DataTextField=&amp;quot;Name&amp;quot;&lt;br /&gt;
        DataValueField=&amp;quot;Id&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Button&lt;br /&gt;
        id=&amp;quot;btnSelect&amp;quot;&lt;br /&gt;
        Text=&amp;quot;Select&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:GridView&lt;br /&gt;
        id=&amp;quot;grdProducts&amp;quot;&lt;br /&gt;
        DataSourceID=&amp;quot;srcProducts&amp;quot;&lt;br /&gt;
        GridLines=&amp;quot;none&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:SqlDataSource&lt;br /&gt;
        id=&amp;quot;srcCategories&amp;quot;&lt;br /&gt;
        ConnectionString=&amp;quot;&amp;lt;%$ ConnectionStrings:Products %&amp;gt;&amp;quot;&lt;br /&gt;
        SelectCommand=&amp;quot;SELECT Id,Name FROM ProductCategories&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:SqlDataSource&lt;br /&gt;
        id=&amp;quot;srcProducts&amp;quot;&lt;br /&gt;
        ConnectionString=&amp;quot;&amp;lt;%$ ConnectionStrings:Products %&amp;gt;&amp;quot;&lt;br /&gt;
        SelectCommand=&amp;quot;SELECT Title,Director FROM Products&lt;br /&gt;
            WHERE CategoryId=@CategoryId&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;SelectParameters&amp;gt;&lt;br /&gt;
        &amp;lt;asp:ControlParameter&lt;br /&gt;
            Name=&amp;quot;CategoryId&amp;quot;&lt;br /&gt;
            ControlID=&amp;quot;dropCategories&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/SelectParameters&amp;gt;&lt;br /&gt;
    &amp;lt;/asp:SqlDataSource&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Varying the Output Cache by Header==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
Use the VaryByHeader to create new cached versions of a page in case of new browser header changes. &lt;br /&gt;
Several standard browser headers are transmitted with each page request, including&lt;br /&gt;
Accept-Language: a list of languages.&lt;br /&gt;
User-Agent:      type of device making the request.&lt;br /&gt;
Cookie:          the browser cookies created in the current domain.&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ OutputCache Duration=&amp;quot;3600&amp;quot; VaryByParam=&amp;quot;none&amp;quot; VaryByHeader=&amp;quot;User-Agent&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
  &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Vary By Header&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;%= DateTime.Now.ToString(&amp;quot;T&amp;quot;) %&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;%= Request.UserAgent %&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== Varying the Output Cache by Parameter==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
The VaryByParam attribute causes a new instance of a page to be cached when a different parameter is passed to the page. &lt;br /&gt;
File: Master.aspx&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
 &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Master&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;asp:GridView&lt;br /&gt;
        id=&amp;quot;grdProducts&amp;quot;&lt;br /&gt;
        DataSourceID=&amp;quot;srcProducts&amp;quot;&lt;br /&gt;
        AutoGenerateColumns=&amp;quot;false&amp;quot;&lt;br /&gt;
        ShowHeader=&amp;quot;false&amp;quot;&lt;br /&gt;
        GridLines=&amp;quot;none&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;Columns&amp;gt;&lt;br /&gt;
        &amp;lt;asp:HyperLinkField&lt;br /&gt;
            DataTextField=&amp;quot;Title&amp;quot;&lt;br /&gt;
            DataNavigateUrlFields=&amp;quot;Id&amp;quot;&lt;br /&gt;
            DataNavigateUrlFormatString=&amp;quot;~/Details.aspx?id={0}&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/Columns&amp;gt;&lt;br /&gt;
    &amp;lt;/asp:GridView&amp;gt;&lt;br /&gt;
    &amp;lt;asp:SqlDataSource&lt;br /&gt;
        id=&amp;quot;srcProducts&amp;quot;&lt;br /&gt;
        ConnectionString=&amp;quot;&amp;lt;%$ ConnectionStrings:Products %&amp;gt;&amp;quot;&lt;br /&gt;
        SelectCommand=&amp;quot;SELECT Id,Title FROM Products&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
File: Details.aspx&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ OutputCache Duration=&amp;quot;3600&amp;quot; VaryByParam=&amp;quot;id&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
  &amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Details&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;%= DateTime.Now.ToString(&amp;quot;T&amp;quot;) %&amp;gt;&lt;br /&gt;
    &amp;lt;hr /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:DetailsView&lt;br /&gt;
        id=&amp;quot;dtlProduct&amp;quot;&lt;br /&gt;
        DataSourceID=&amp;quot;srcProducts&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;asp:SqlDataSource&lt;br /&gt;
        id=&amp;quot;srcProducts&amp;quot;&lt;br /&gt;
        ConnectionString=&amp;quot;&amp;lt;%$ ConnectionStrings:Products %&amp;gt;&amp;quot;&lt;br /&gt;
        SelectCommand=&amp;quot;SELECT * FROM Products&lt;br /&gt;
            WHERE Id=@Id&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;SelectParameters&amp;gt;&lt;br /&gt;
            &amp;lt;asp:QueryStringParameter&lt;br /&gt;
                Name=&amp;quot;Id&amp;quot;&lt;br /&gt;
                Type=&amp;quot;int32&amp;quot;&lt;br /&gt;
                QueryStringField=&amp;quot;Id&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/SelectParameters&amp;gt;&lt;br /&gt;
    &amp;lt;/asp:SqlDataSource&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
You can assign two special values to the VaryByParam attribute:&lt;br /&gt;
none: causes any query string or form parameters to be ignored. &lt;br /&gt;
      &lt;br /&gt;
*:    caches a new cached version whenever there is a change in query string or form parameter passed to the page.&lt;br /&gt;
You can assign a semicolon-delimited list of parameters to the VaryByParam attribute.&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
== You enable Page Output Caching by adding an &amp;lt;%@ OutputCache %&amp;gt; directive to a page.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
The following page caches its contents for 15 seconds.&lt;br /&gt;
&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;%@ OutputCache Duration=&amp;quot;15&amp;quot; VaryByParam=&amp;quot;none&amp;quot; %&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;br /&gt;
&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    void Page_Load()&lt;br /&gt;
    {&lt;br /&gt;
        lblTime.Text = DateTime.Now.ToString(&amp;quot;T&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;html xmlns=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;head id=&amp;quot;Head1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Cache Page Output&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Label&lt;br /&gt;
        id=&amp;quot;lblTime&amp;quot;&lt;br /&gt;
        Runat=&amp;quot;server&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>