ASP.NET Tutorial/Cache/Cache class

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

Save data to Cache if it is not there

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="SimpleDataCache" %>
<!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>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="Button1" runat="server" Text="Post Back" />
        <br />
        <br />
        <asp:Label ID="lblInfo" runat="server"></asp:Label>
    
    </div>
    </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 SimpleDataCache : System.Web.UI.Page
{
  protected void Page_Load(Object sender, EventArgs e)
  {
    if (this.IsPostBack)
    {
      lblInfo.Text += "Page posted back.<hr />";
    }
    else
    {
      lblInfo.Text += "Page created.<hr />";
    }
    if (Cache["TestItem"] == null)
    {
      DateTime testItem = DateTime.Now;
      lblInfo.Text += "cache for 30 seconds.<hr />";
      Cache.Insert("TestItem", testItem, null,DateTime.Now.AddSeconds(30), TimeSpan.Zero);
    }
    else
    {
      lblInfo.Text += "Retrieving TestItem...<br />";
      DateTime testItem = (DateTime)Cache["TestItem"];
      lblInfo.Text += "TestItem is "" + testItem.ToString();
    }
  }
}


Using Data Caching

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    public class CacheItem
    {
        private string _key;
        private object _value;
        public string Key
        {
            get { return _key; }
        }
        public string Value
        {
            get { return _value.ToString(); }
        }
        public CacheItem(string key, object value)
        {
            _key = key;
            _value = value;
        }
    }
    void Page_Load()
    {
        ArrayList items = new ArrayList();
        foreach (DictionaryEntry item in Cache)
            items.Add(new CacheItem(item.Key.ToString(),item.Value));
        grdCache.DataSource = items;
        grdCache.DataBind();
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <style type="text/css">
        .grid td, .grid th
        {
            padding:5px;
        }
    </style>
    <title>Enumerate Cache</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:GridView
        id="grdCache"
        CssClass="grid"
        Runat="server" />
    </div>
    </form>
</body>
</html>