【问题标题】:How I can customize the Leemon CMS to filter the content by customzied field?如何自定义 Leemon CMS 以按自定义字段过滤内容?
【发布时间】:2014-07-17 09:09:10
【问题描述】:

我正在使用 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>();

【问题讨论】:

    标签: asp.net content-management-system lemoon


    【解决方案1】:

    首先,我认为您可以简化获取 ServiceItems 的代码。您可以简单地使用ContentService.GetChildren&lt;ServiceItem&gt;(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);

    【讨论】:

    • 如何使用“ContentQuery”使用内容类型字段来订购我的内容?
    • “ContentService”给我以下错误:至少一个对象必须实现 IComparable!!请指教
    • 我认为您不能使用 ContentQuery 通过“自定义”属性进行排序。为此,您需要使用 OrderBy(x => x.Property) 扩展方法。
    • 但它给了我以下错误:至少一个对象必须实现 IComparable
    • 嗯,以前从未见过。你能显示一些代码吗?
    猜你喜欢
    • 1970-01-01
    • 2015-07-14
    • 2014-11-05
    • 2018-09-08
    • 2018-10-13
    • 2013-03-16
    • 2011-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多