2010-12-14 40 views
1

Je recherche la même cible que celle mentionnée dans la publication Daivd Hill, mais je ne parviens toujours pas à obtenir le type de contenu personnalisé correspondant à ma requête;Requête CAML pour le type de contenu personnalisé

string dateString = (DateTime.Now.Add(new TimeSpan(-5, 0, 0, 0, 0))).ToString("yyyy-MM-ddThh:mm:ssZ"); 
string q= String.Format("Where And"+"Eq FieldRef Name='ContentTypeId'/" + "Value Type='Text'0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D08/Value /Eq"+ 
"Eq FieldRef Name='Created'/" + 
"Value Type='DateTime'{0} /Value /Eq ", dateString+ " /And /Where"); 

SPSiteDataQuery query = new SPSiteDataQuery(); 

query.Query= q; 

Après cela que dois-je faire -> où dois-je exécuter la requête contre, comme je essaie de faire contre le type de contenu, la plupart des exemples que j'ai trouvé sur les listes intégrées comme l'annonce de la tâche .. etc

dans la requête essaie d'obtenir le type spécifique de contenu personnalisé en fonction de son ID qui est créé pour l'ex il y a 5 jours

Merci si u ont une idée de l'aide, ou u peut donner l'exemple de ce que votre solution ressemble à merci Azo

Répondre

1

Certains Ce genre de chose a bien fonctionné pour moi, mais je demandais la liste.

string dateInCorrectFormat = SPUtility.CreateISO8601DateTimeFromSystemDateTimeDateTime.Now.AddDays(-5)); 
SPQuery query = new SPQuery(); 
//Query below 
query.Query = String.Format(.... , dateInCorrectFormat); 
SPListItemCollection items = list.GetItems(query); 

<Where> 
     <And> 
      <BeginsWith> 
       <FieldRef Name='ContentTypeId' /> 
       <Value Type='ContentTypeId'>0x0100XCustomContentypeIdHereX</Value> 
      </BeginsWith> 
      <Lt> 
       <FieldRef Name='Created'/> 
       <Value Type='DateTime' IncludeTimeValue='TRUE'>{0}</Value> 
     </Lt> 
    </And> 
</Where> 

Espérons que cela aide.