NotInCriteria (ASP.NET)
Use NotInCriteria to include certain items in a query.
The following is an example of using the NotInCriteria:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Tridion.ContentDelivery.DynamicContent.Query;
using Tridion.ContentDelivery.DynamicContent;
namespace TestTaxonomies
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Create query
Query myQuery = new Query();
Criteria myCriteria = null;
String taxonomyURI = "tcm:4-1042-512";
// Criteria for keywords
Criteria keywordOneCriteria = new TaxonomyKeywordCriteria(taxonomyURI, "tcm:4-6252-1024", false);
Criteria keywordTwoCriteria = new TaxonomyKeywordCriteria(taxonomyURI, "tcm:4-5243-1024", false);
// Combine with NotInCriteria to find all items which have neither of the keywords
Criteria notInCriteria = new NotInCriteria(new OrCriteria(keywordOneCriteria, keywordTwoCriteria));
// ItemTypeCriteria for items of type 64, that is, Page.
ItemTypeCriteria itemTypeCriteria = new ItemTypeCriteria(64);
// Combine ItemTypeCriteria with NotInCriteria for find all Pages that have neither of the Keywords
myCriteria = new AndCriteria(notInCriteria, itemTypeCriteria);
myQuery.Criteria = myCriteria;
SortParameter sortParameter = new SortParameter(SortParameter.ItemTitle, SortParameter.Ascending);
myQuery.AddSorting(sortParameter);
myQuery.SetResultFilter(new LimitFilter(20));
string[] itemURIs = myQuery.ExecuteQuery();
foreach (string itemURI in itemURIs)
{
Response.Write(itemURI + ", ");
}
}
}