0

我正在使用 Lemoon CMS。我创建了一个新的内容类型,并使用新字段对其进行了修改,并且一切正常。

我创建了一个新的用户控件来显示我的内容类型中的一些数据,其中字段(“isFeatured=true”)

如何自定义代码以过滤内容,以及如何按自定义添加字段对数据进行排序?

 ContentQuery query = new ContentQuery();
    query.ParentID = 70;
    query.MinDepth = 1;
    query.MaxDepth = 1;
    query.LanguageMode = LanguageMode.Fallback;
    query.SearchNonSearchable = null;
    query.ContentTypes.Add(typeof(Mindroute.Lemoon.Generated.ContentType.ServiceItem).FullName);

    query.ContentTypeMode = ContentTypeMode.Inherit;
    //query.OrderBy.Add(new SortItem(ContentColumn.Columns[6], "desc"));
    Response.Write(ContentColumn.Columns[6]);
    query.PageSize = 8;
    Entries = ContentService.Search(query).Cast<Mindroute.Lemoon.Generated.ContentType.ServiceItem>();
4

1 回答 1

0

首先,我认为您可以简化获取 ServiceItems 的代码。您可以简单地使用ContentService.GetChildren<ServiceItem>(70)而不是设置一个ContentQuery.

要按特定属性过滤和排序,您可以像这样使用 Linq:

var children = ContentService.GetChildren<ServiceItem>(70);
var filtered = children.Where(x => x.IsFeatured == true);
var ordered = filtered.OrderBy(x => x.SomeOtherProperty);

也可以使用 ContentQuery 查找具有自定义属性的项目,然后您需要设置ContentQuery.PropertyValue = new PersistedValue("IsFeatured", true);

于 2014-07-20T20:48:18.633 回答