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 回答