2010-10-30 31 views
0

J'ai besoin d'afficher des listes de pages nouvellement créées et mises à jour dans notre intranet Episerver - disons les dix dernières de chaque page. J'ai essayé d'utiliser FindPagesWithCriteria mais cela ne donne aucun résultat. Voici le code que j'ai essayé:Recherche de pages nouvelles et mises à jour dans EpiServer

PageDataCollection recentPages; 
PropertyCriteriaCollection criteria; 
PropertyCriteria upperBound; 
PropertyCriteria lowerBound; 

criteria = new PropertyCriteriaCollection(); 

upperBound = new PropertyCriteria(); 
upperBound.Condition = CompareCondition.LessThan; 
upperBound.Type = PropertyDataType.Date; 
upperBound.Value = DateTime.Today.ToString(); 
upperBound.Name = "Created"; // Or Saved for updated pages 

criteria.Add(upperBound); 

lowerBound = new PropertyCriteria(); 
lowerBound.Condition = CompareCondition.GreaterThan; 
lowerBound.Type = PropertyDataType.Date; 
lowerBound.Value = DateTime.Today.AddDays(-7).ToString(); 
lowerBound.Name = "Created"; 

criteria.Add(lowerBound); 

recentPages = DataFactory.Instance.FindPagesWithCriteria(PageReference.StartPage, criteria); 

J'ai aussi essayé d'utiliser la RecentlyChangedPagesFinder (comme détaillé here) - cela renvoie des résultats, mais lorsque je tente d'utiliser l'ensemble des résultats pour construire un PageCollection à DataBind dans une PageList, encore une fois je ne reçois rien sortie. Et je ne vois pas que je pourrais l'utiliser pour les nouvelles pages, seulement celles mises à jour.

Répondre

4

Le nom de la propriété doit être "PageCreated".

http://epiwiki.se/developing/properties/all-built-in-properties

Vous pouvez également améliorer votre FindPagesWithCriteria syntaxe en allant quelque chose comme ceci:

var criterias = new PropertyCriteriaCollection 
{ 
    new PropertyCriteria() 
    { 
     Name = "SomeProp", 
     Type = PropertyDataType.PageType, 
     Value = "eh", 
     Condition = CompareCondition.Equal, 
     Required = true 
    }, 
    new PropertyCriteria() 
    { 
     ... 
}; 

var pages = DataFactory.Instance.FindPagesWithCriteria(somePageLink, criterias); 
+0

Il est à noter que l'utilisation FindPagesWithCriteria touche le DB souvent et peut causer des problèmes de performance. – Rexxo