WebPart.PartCacheRead Method
Reads and returns a value from the specified location in the specified type of storage in the Web Part cache.
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: No
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 null.
- key
- Type: System.String
The name of the value to be read from the Web Part cache.
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")+ " "); this.RenderChildren(output); } private string fetchData() { return DateTime.Now.ToLongTimeString(); } } }