2016-05-30 44 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)

感谢您发布此问题和解决方案,这是一个很大的帮助。