gpt4 book ai didi

c# - GridView 与嵌套类的属性绑定(bind)

转载 作者:IT王子 更新时间:2023-10-29 04:06:02 26 4
gpt4 key购买 nike

我有一个类似于下面所列的对象映射。当我尝试在 GridView 中绑定(bind) NestedClass 的属性时,出现错误:

"A field or property with the name 'NestedClass.Name' was not found on the selected data source."

GridView 绑定(bind)到 ObjectDataSource,ObjectDataSource 绑定(bind)到 BoundClass 的完全填充实例。

有什么办法解决这个问题吗?

示例类:

public class BoundClass
{
public string Name { get; set; }
public NestedClass NestedClass { get; set; }
}

public class NestedClass
{
public string Name { get; set; }
}

最佳答案

BoundField 列中只能显示实例的直接属性。

必须改为在项目模板中使用 DataBinder.Eval 来访问嵌套属性,而不是将其分配给边界字段。

例子:

<asp:TemplateField>
<itemtemplate>
<p><%#DataBinder.Eval(Container.DataItem, "NestedClass.Name")%></p>
</itemtemplate>
</asp:TemplateField>

或者,您可以创建一个自定义类,它继承 BoundField 并覆盖 GetValue 以使用 DataBinder.Eval,如这篇博文中所述:

http://web.archive.org/web/20120121123301/http://iridescence.no/post/FixingBoundFieldSupportforCompositeObjects.aspx

关于c# - GridView 与嵌套类的属性绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1130351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com