Export (0) Print
Expand All
Expand Minimize

WebPart.PartCacheRead method

Reads and returns a value from the specified location in the specified type of storage in the Web Part cache.

Namespace:  Microsoft.SharePoint.WebPartPages
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

protected Object PartCacheRead(
	Storage storage,
	string key
)

Parameters

storage
Type: Microsoft.SharePoint.WebPartPages.Storage

A Storage value that specifies the type of storage in the Web Part cache where a value is read. Possible values are Personal and Shared. Specifying None returns a null reference (Nothing in Visual Basic).

key
Type: System.String

The name of the value to be read from the Web Part cache.

Return value

Type: System.Object
An object that returns the value that is read.

The following code example shows a Web Part that caches and displays the time when it is first rendered, and provides a button to refresh the Web Part cache with the current time.

using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.WebPartPages;

namespace WebPartLibrary1
{
    /// <summary>
    /// Summary description for CacheSample.
    /// </summary>
    [DefaultProperty("Text"),
        ToolboxData("<{0}:CacheSample runat=server></{0}:CacheSample>"),
        XmlRoot(Namespace="WebPartLibrary1")]

    public class CacheSample : Microsoft.SharePoint.WebPartPages.WebPart
    {
        Button refreshButton;

        public CacheSample()
        {
            this.PreRender+=new EventHandler(UpdateCache);
        }

        protected override void CreateChildControls()
        {
            refreshButton = new Button();
            refreshButton.Text="Refresh Cache";
            refreshButton.Click+=new EventHandler(refreshButton_click);
            this.Controls.Add(refreshButton);
        }

        public void UpdateCache(object o, System.EventArgs e)
        {

            if(this.PartCacheRead(Storage.Shared,"cacheKey") == null)
            {
                this.PartCacheWrite(Storage.Shared,"cacheKey", fetchData(), TimeSpan.FromSeconds(10));
            }
        }

        private void refreshButton_click(object o, System.EventArgs e)
        {
            this.PartCacheInvalidate(Storage.Shared, "cacheKey");
        }

        protected override void RenderWebPart(HtmlTextWriter output)
        {
            output.Write("Cache Value: ");
            output.Write(PartCacheRead(Storage.Shared,"cacheKey")+ "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
            this.RenderChildren(output);
        }

        private string fetchData()
        {
            return DateTime.Now.ToLongTimeString();
        }
    }
}

Show:
© 2014 Microsoft