ASP.NET Tutorial/Cache/Cache class
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>