ASP.NET Tutorial/Custom Controls/Cache — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (1 версия)
 
(нет различий)

Текущая версия на 15:00, 26 мая 2010

Cache user control (Fragment Caching With Property)

   <source lang="csharp">

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Default_aspx" %> <%@ Register TagPrefix="MyUserControl" TagName="LoadTime" Src="~/Control.ascx"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Fragment Caching</title>

</head> <body>

   <form id="form1" runat="server">

Fragment Caching

    <asp:Label ID="lblTime" runat="server" />
    
<MyUserControl:LoadTime runat="server" />
   </form>

</body> </html> File: Default.aspx.cs

using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Default_aspx : System.Web.UI.Page {

   protected void Page_Load(object sender, EventArgs e)
   {
    lblTime.Text = "This page was loaded at " +
      DateTime.Now.ToLongTimeString();
   }

}

File: Control.ascx <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Control.ascx.cs" Inherits="SimpleUserControl_ascx" %> <%@ OutputCache Duration="10" VaryByParam="*" %>


User Control

<asp:Label ID="lblTime" runat="server" />
<asp:Label ID="lblUserName" runat="server" Text="Dan" />
<asp:Button ID="btn" runat="server" Text="Change Name to Jesse" OnClick="btn_Click" />


File: Control.ascx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class SimpleUserControl_ascx : System.Web.UI.UserControl {

 public string UserName
 {
   get
   {
     return lblUserName.Text;
   }
   set
   {
     lblUserName.Text = value;
   }
 }
 protected void Page_Load(object sender, EventArgs e)
   {
    lblTime.Text = "This user control was loaded at " +
      DateTime.Now.ToLongTimeString();
   }
  protected void btn_Click(object sender, EventArgs e)
  {
    lblUserName.Text = "Jesse";
  }
}</source>
   
  

Cache with user component

   <source lang="csharp">

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="CacheTest" %> <%@ Register Src="Control.ascx" TagName="CachedWebUserControl" TagPrefix="uc1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Cache Test</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<uc1:CachedWebUserControl id="CachedWebUserControl1" runat="server">
</uc1:CachedWebUserControl> 
   </form>

</body> </html> File: Default.aspx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class CacheTest : System.Web.UI.Page {

   protected void Page_Load(object sender, EventArgs e)
   {
   this.Label1.Text = string.Format("The Time in the Web Page is: {0}",
     DateTime.Now.ToLongTimeString());
   }

}

File: Control.ascx <%@ Control Language="C#" AutoEventWireup="true" CodeFile="Control.ascx.cs" Inherits="CachedWebUserControl"  %> <%@ OutputCache Duration=60 VaryByParam="none" %> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> File: Control.ascx.cs using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class CachedWebUserControl : System.Web.UI.UserControl {

   protected void Page_Load(object sender, EventArgs e)
   {
   this.Label1.Text = string.Format("The Time in the User Control is: {0}",
     DateTime.Now.ToLongTimeString());
   }

}</source>