我正在使用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>();
答案 0 :(得分: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);