0

リストビューを使用して、サイトのすべてのユーザーのリストを表示しています。ユーザーは複数の画像をアップロードできるため、エンティティ フレームワークでモデルを生成すると、ユーザーと画像の 2 つのエンティティが作成されました。ユーザーには画像のコレクションへのナビゲーション プロパティがあり、画像には単一のユーザーへのナビゲーション プロパティがありました。

私は今、ユーザーがアップロードした画像のリストビュー 1 に表示しようとしています (アップロードした場合)。どの画像が表示されているかは問題ではありません。

EntityDataSource を作成し、その include プロパティに「Images」を追加しました。次に、リストビューをデータソースに分岐しました。通常、ナビゲーション プロパティのコンテンツを表示するには、次のようなものを使用します

<asp:Label ID="fn" runat="server" Text='<%# Eval("Users.Firstname") %>' />

しかし、表示しようとしているのはコレクションの列なので、このようなものを使用できますか? もしそうなら、ユーザーが画像をアップロードしなかった場合を管理する適切な方法は何でしょうか?

<asp:image ID="img" runat="server" ImageUrl='<%# Eval("Images[0].path") %>' AlternateText="" />

4

1 に答える 1

0

Evalリフレクションを使用しており、より複雑な用語には制限があります。直接キャストを恐れる必要はありません。

 <asp:image ID="img" runat="server" 
  ImageUrl='<%# ((YourObjectType)Container.DataItem).Images[0].path") %>' 
  AlternateText="" />

キャストするには、ページにディレクティブYourObjectTypeを追加する必要があることに注意し<@Import >てください (または、名前空間を含む完全な型名を使用する必要があります)。

于 2012-09-18T18:00:43.513 に答える