2016-05-30 16 views
1

私はそのように画像を取得することができます:ソート2sxc ADAMファイル

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

1.What名前またはアップロード日付で画像をソートする正しい方法ですか?

2.注文の順序を変更するには?

答えて

2

DNN FileInfoオブジェクトを使用して、私はこのコードを使用:

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

「フォルダ」自体は発注していません。私は2つの提案を持っています

  1. 出力には表示されていないファイルの先頭に番号を付けます。これは私がアプリケーションカタログでやっていることです。各ファイルには「31出力編集」があります。これをローカルシステムで事前に並べ替えることができます。

  2. 各ファイルはメタデータを持つことができるので優先順位またはソートフィールドをメタデータに追加し、ソートに使用します。

  3. あなたはまた、常に(日付のような)ファイルの情報によってオブジェクトを並べ替えることができます - これは、メタデータフィールド上でソートするには

+0

この回答は役に立ちましたか?役に立ったと答えています。質問を終了してください。 – iJungleBoy

+0

メタデータのソート方法がわかりません。 このリストmyファイル:@foreach(var AsAdamの画像(コンテンツ、 "画像")。ファイル) タイトルを(メタデータから)ソートする方法がわからない –

0

2sxc v8.7(他のバージョンについてはわかりません)では、この回答に問題がある人のためのアップデートだけで、取得するために1行の.Where(x => x.Metadata.Enabled)部分を削除しなければなりませんでした特定のコレクションの写真にメタデータを追加するたびに失敗してしまうしかし、それはまだその作品なしでうまくいくようです。

また、それが人にはわからない場合、.OrderBy(x => x.Metadata.Sortは、あなたが定義したメタデータを「Sort」と呼んでいることを意味します。 SortOrderのように数字で定義します)、そのステートメントを使用するメタデータの名前に変更します(例:.OrderBy(x => x.Metadata.SortOrder))。

ありがとう