0

私には3つのクラス(ドメイン、ロール、ユーザー)があります。ドメインとロールは、次のようにユーザークラスのプロパティです。

    public int UserID { get; set; }
    public string UserName { get; set; }
    public Domain Domain { get; set; }
    public Role Role { get; set; }
    public bool Active { get; set; }

ドメインとロールには、IDプロパティとNameプロパティがあります。

ユーザーリストをグリッドビューにバインドしたいのですが、ドメイン名を表示しています。現在、次のようなバインドされたフィールドがあります。

<asp:BoundField DataField="Domain.DomainName" SortExpression="UserDomain" ReadOnly="True" HeaderText="User Domain" />

しかし、これは機能せず、休眠エラーが発生します。DataBinding: 'Yasur.Business.Entities.User' does not contain a property with the name 'DomainName'.

これを行うための最良の方法は何ですか?

ペドロ・デュッソ

4

1 に答える 1

0

このようなオブジェクトで双方向のデータバインディングを行うことはできないと思います。次のような構文で TemplateField を使用すると、データを「評価」できます (テストされていません)。

<asp:TemplateField>
<ItemTemplate>
    <asp:Label ID="Label1" runat="server" Text='<%# ((Domain)Eval("Domain")).DomainName %>' />
</ItemTemplate>

于 2010-08-04T17:53:24.123 に答える