PortalSiteMapProvider.GetCachedSiteDataQuery method

Returns the cached result of a SiteDataQuery object.

Namespace:  Microsoft.SharePoint.Publishing.Navigation
Assembly:  Microsoft.SharePoint.Publishing (in Microsoft.SharePoint.Publishing.dll)

public DataTable GetCachedSiteDataQuery(
	PortalWebSiteMapNode webNode,
	SPSiteDataQuery query,
	SPWeb contextWeb


Type: Microsoft.SharePoint.Publishing.Navigation.PortalWebSiteMapNode

PortalWebSiteMapNode object that represents the Web site that contains the data.

Type: Microsoft.SharePoint.SPSiteDataQuery

The SPSiteDataQuery to run.

Type: Microsoft.SharePoint.SPWeb

The SPWeb object that exists within the context of a particular user. For example, this parameter can specify the SPContext.Current.Web object.

Return value

Type: System.Data.DataTable
The result returns only major or minor versions, not items that are checked out to the current user.

The contextWeb parameter is used to determine the correct items to return.

The following example references the following assemblies:

  • System.dll

  • System.Data.dll

  • System.Xml.dll

  • System.Web.dll

  • System.Configuration.dll

  • Microsoft.SharePoint.dll

  • Microsoft.SharePoint.Library.dll

  • Microsoft.SharePoint.Publishing.dll

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Web;

using Microsoft.SharePoint;
using Microsoft.SharePoint.Navigation;

using Microsoft.SharePoint.Publishing;
using Microsoft.SharePoint.Publishing.Navigation;

namespace Microsoft.SDK.SharePointServer.Samples
    class GetCachedSiteDataQuerySample
        // Runs a given site data query against the cache and returns the results.
        // Note: You must call this method from within an HttpContext object (for example, HttpContext.Current 
        // must return a valid HttpContext).

        public DataTable GetCachedSiteDataQuery(string webUrl, SPSiteDataQuery siteDataQuery)
            PortalSiteMapProvider portalProvider = PortalSiteMapProvider.CurrentNavSiteMapProviderNoEncode;
            PortalWebSiteMapNode webNode = portalProvider.FindSiteMapNode(webUrl) as PortalWebSiteMapNode;
            if (webNode != null)
                return portalProvider.GetCachedSiteDataQuery(
                    webNode, siteDataQuery, SPContext.Current.Web);
            return null;