2014-07-17 57 views
0

我正在使用Lemoon CMS。我創建了一個新的內容類型,並且我用新字段對其進行了修改,並且所有工作都正常。如何自定義Leemon CMS以通過customzied字段過濾內容?

我創建了一個新的用戶控件從我的內容類型顯示一些數據字段(「isFeatured =真」)

我如何自定義代碼的內容過濾器,以及我如何排序的數據通過自定義添加字段?

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

首先,我認爲你可以簡化獲取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);

+0

如何使用「ContentQuery」使用內容類型字段來訂購我的內容? –

+0

「ContentService」給我以下錯誤:至少有一個對象必須實現IComparable!請告知 –

+0

我不認爲你可以使用ContentQuery通過「自定義」屬性進行排序。您需要爲此使用OrderBy(x => x.Property)擴展方法。 – lajjne

相關問題