나는 현재 DateTime.Now
이보다 작은 여부를 확인, 모든 페이지를 검색하고 코드에 발표되지 않은 사람을 필터링하고 있습니다 : I SharePoint에서하지 않도록 해당하는 CAML 쿼리를 것입니다 무엇 SharePoint 2007에서 게시 된 페이지 만 검색하는 CAML 쿼리?
static readonly DateTime IMMEDIATE_PUBLISH = new DateTime(1900, 1, 1);
public static DateTime PublicationDate(this SPListItem item)
{
// get start publish date
PublishingPage page = item.Publishing();
if (page != null)
{
bool isPublished = (page.ListItem.File != null)
? (page.ListItem.File.Level == SPFileLevel.Published)
: true;
bool isApproved = (page.ListItem.ModerationInformation != null)
? (page.ListItem.ModerationInformation.Status == SPModerationStatusType.Approved)
: true;
if (isPublished && isApproved && (DateTime.Now < page.EndDate))
{
return page.StartDate == IMMEDIATE_PUBLISH ? page.CreatedDate : page.StartDate;
}
return DateTime.MaxValue;
}
// not a scheduled item. treat as published
return DateTime.MinValue;
}
데이터베이스에서 불필요한 항목을 가져 오겠습니까?
이 샘플에 따르면 (http://www.stum.de/2008/03/13/caml-queries /), 대답이 무엇이든, 그것은 끔직한 신성 모독이 될 것이며 Sharepoint가 악마 화신이 된 이유를 상기시킵니다. – Juliet
CAML.Net http://camldotnet.codeplex.com/ 조금 도움이됩니다. – skolima