При наличии GridView:
<asp:GridView ID="gv" runat="server">
В методе, который вызывает gv.DataBind()
, подключитесь к набору данных, который заполняется из кэша.
System.Web.Caching.Cache cache = HttpContext.Current.Cache;
System.Data.DataSet gvDataSet = cache.Get("gvDataSet") as System.Data.DataSet;
if (gvDataSet == null)
{
gvDataSet = GetDataSetFromDatabase();
cache.Insert("gvDataSet",
gvDataSet,
null,
System.Web.Caching.Cache.NoAbsoluteExpiration,
TimeSpan.FromMinutes(120),
System.Web.Caching.CacheItemPriority.Default,
null);
}
gv.DataSource = gvDataSet;
gv.DataBind();
В коде, который обновляет DataSet, очистите кеш.
cache.Remove("gvDataSet");
Если код, который обновляет DataSet, является внешним по отношению к веб-серверу, напишите обработчик HTTP (универсальный обработчик), содержащий код для очистки кэша и вызова обработчика из внешнего кода.