Erhalten Sie Feldwerte von SitemapNode, wenn Sie Elemente von PortalsitemProvider erheben
-
10-12-2019 - |
Frage
Ich versuche meine Liste mit PortalsitemProvider abzufragen.Hier ist mein Code: generasacodicetagpre.
Ich kann die Titelspalte eines einzelnen Listenelements erhalten.Aber ich weiß nicht, wie ich andere Felder in der Liste erhalte soll.Nehmen wir an, ich habe eine Spalte namens "Alter".Wo ist es in einem Sitemapnode?
jede idee?
Lösung
I saw a Demo in CodePlex at : http://spquerydemo.codeplex.com . It presents an extensive sample code for many ways of querying SharePoint.
I've found the solution.
This Code Works like a BOOM. Instead of "SiteMapNode" object you need "PortalListItemSiteMapNode" for indexer to work.
public List<string> GetChachedItems(string webUrl, SPQuery query)
{
SiteMapNodeCollection nodeCollection = new SiteMapNodeCollection();
PortalSiteMapProvider portalProvider = PortalSiteMapProvider.WebSiteMapProvider;
PortalWebSiteMapNode webNode = ((PortalSiteMapNode)portalProvider.CurrentNode).WebNode;
if (webNode != null)
{
nodeCollection = portalProvider.GetCachedListItemsByQuery(
webNode, "test", query, SPContext.Current.Web);
}
List<string> itemCollection = new List<string>();
var listItemNodes = portalProvider.GetCachedListItemsByQuery(
webNode,
"Test", query, SPContext.Current.Web);
foreach (PortalListItemSiteMapNode node in nodeCollection)
{
itemCollection.Add(node.Title + " " + node["age"]);
}
return itemCollection;
}
Andere Tipps
You can use Item
property of SiteMapNode
to gets or sets a custom attribute from the Attributes collection or a resource string based on the specified key!