Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Marks all contents of the specified storage type in the Web Part cache as outdated.
Namespace:  Microsoft.SharePoint.WebPartPages
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: No
Syntax
'Declaration
Protected Friend Sub PartCacheInvalidate ( _
    storage As Storage _
)
'Usage
Dim storage As Storage
Me.PartCacheInvalidate(storage)
protected internal void PartCacheInvalidate(
    Storage storage
)
Parameters
storage
Type: Microsoft.SharePoint.WebPartPages.StorageA Storagevalue that identifies the type of storage allocated in the Web Part cache. Possible values are Personal and Shared.
Remarks
Calling the PartCacheInvalidate(Storage) method passing a Storage value marks all content of the specified storage type in the Web Part cache as outdated. Call the [M:Microsoft.SharePoint.WebPartPages.WebPart.PartCacheInvalidate()] method to mark all of the contents of the Web Part cache as outdated. Call the PartCacheInvalidate(Storage, String) method to mark only the specified cached value of the specified storage type in the Web Part cache as outdated.
Examples
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.
Imports System
Imports System.ComponentModel
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Xml.Serialization
Imports Microsoft.SharePoint
Imports Microsoft.SharePoint.Utilities
Imports Microsoft.SharePoint.WebPartPages
Namespace WebPartLibrary1
    <DefaultProperty("Text"), _
    ToolboxData("<{0}:CacheSample runat=server></{0}:CacheSample>"), _
    XmlRoot([Namespace] := "WebPartLibrary1")>
    Public Class CacheSample
      Inherits Microsoft.SharePoint.WebPartPages.WebPart
      Private refreshButton As Button
      Public Sub New()
         AddHandler Me.PreRender, AddressOf UpdateCache
      End Sub
      Protected Overrides Sub CreateChildControls()
         refreshButton = New Button()
         refreshButton.Text = "Refresh Cache"
         AddHandler refreshButton.Click, AddressOf refreshButton_click
         Me.Controls.Add(refreshButton)
      End Sub
      Public Sub UpdateCache(o As Object, e As System.EventArgs)
         If Me.PartCacheRead(Storage.Shared, "cacheKey") Is Nothing Then
            Me.PartCacheWrite(Storage.Shared, "cacheKey", fetchData(), TimeSpan.FromSeconds(10))
         End If
      End Sub
      Private Sub refreshButton_click(o As Object, e As System.EventArgs)
         Me.PartCacheInvalidate(Storage.Shared, "cacheKey")
      End Sub
      Protected Overrides Sub RenderWebPart(output As HtmlTextWriter)
         output.Write("Cache Value: ")
         output.Write((PartCacheRead(Storage.Shared, "cacheKey") + "     "))
         Me.RenderChildren(output)
      End Sub
      Private Function fetchData() As String
         Return DateTime.Now.ToLongTimeString()
      End Function
   End Class
End Namespace
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();
        }
    }
}