0

ASPXページにGridViewコントロールがあります。オブジェクトリストから特定のプロパティを取得しようとするまでは正常に機能します。

次のようなオブジェクトをリストに挿入します。

var test = new List<DataTest>
{
    new DataTest
        {
            Name = "A name",
            Bla = new Bla()
        }
}

クラスBlaは次のようになります。

public class Bla
{
    public string Blaat = "aaa";
}

Blaatしかし、次のように、GridViewでプロパティを取得できないようです。

<asp:BoundField DataField="Bla.Blaat" HeaderText="Name" />

ただしName、問題なく出力できます。

<asp:BoundField DataField="Name" HeaderText="Name" />

これは、オブジェクトで直接定義されているプロパティのみを使用できることを意味しますか?DataTestしたがって、 ?のようなサブオブジェクトへの参照はありません。Bla.Blaat

4

1 に答える 1

1

TemplateFieldを使用する必要があります。

<asp:TemplateField HeaderText="Name" SortExpression="Name">
        <ItemTemplate>
            <asp:Label runat="server" ID="lblName" Text='<%# Server.HtmlEncode(Convert.ToString(Eval("Bla.Blaat"))) %>' />
        </ItemTemplate>
</asp:TemplateField>

コードビハインドで値を設定することもできます。

于 2013-03-20T13:43:47.870 に答える