2016-05-30 50 views
1

我能得到的圖像,道:排序2sxc亞當文件

foreach (var pic in AsAdam(Content, "Images").Files) 

1.什麼是按名稱或更新日期排序圖像的正確方法?

2.如何自定義重新排列圖像?

回答

2

進行排序元數據字段我用這個代碼:

var filesAll = AsDynamic(AsAdam(Content, "Images").Files) as IEnumerable<dynamic>; 
var filesWithMetadata = filesAll.Where(x=>x.HasMetadata).Where(x=>x.Metadata.Enabled).OrderBy(x=>x.Metadata.Sort); 
var files = filesWithMetadata.Concat(filesAll.Where(x=>!x.HasMetadata)); 
} 
@foreach(var pic in files){ 
<div style="clear: both"> 
    <img src="@pic.Url?w=200&h=200&mode=crop" title="@pic.FileName" style="float: right"> 
    <h3>@pic.Metadata.Title</h3> 
    Has Meta: @pic.HasMetadata 
    <div>Description: @Html.Raw(pic.Metadata.Description)</div> 
</div> 
} 
2

「文件夾」本身不提供排序。我有兩個建議

  1. 要麼做一些文件有一個前導號碼 - 這不會在輸出中顯示。這是我在應用程序目錄上做的,因此每個文件都有一個「31輸出編輯」 - 這樣我可以在批量上傳它們之前在我的本地系統中對它們進行預先排序

  2. 由於每個文件都可以有元數據將優先級或排序字段添加到元數據並使用它進行排序。

  3. 您也可以隨時排序文件信息(如日期)的對象 - 這個使用DNN FileInfo對象,其

+0

做了這個答案幫助嗎?如果是這樣,請關閉該問題。 – iJungleBoy

+0

我不知道如何排序元數據? 此列表我的文件:@foreach(var AsAdam中的圖片(內容,「圖片」)。文件) 但不知道如何排序標題(來自元數據) –

0

只是針對有此問題的任何人的更新,對於2sxc v8.7(不確定其他版本),我必須刪除一行中的.Where(x => x.Metadata.Enabled)部分才能獲得擺脫它每次我添加任何元數據到特定集合中的任何照片時失敗,不知道爲什麼是這樣儘管如此,但如果沒有這件作品,它似乎仍然可以正常工作。另外,如果它對人們不清楚,.OrderBy(x => x.Metadata.Sort意味着它尋找一個你定義的稱爲「Sort」的元數據,如果你調用元數據,你定義了其他的東西如SortOrder,定義爲一個數字),那麼只需將該語句更改爲您使用的元數據的名稱(例如.OrderBy(x => x.Metadata.SortOrder)

感謝您發佈此問題和解決方案,這是一個很大的幫助。