【问题标题】:ASP GridView DataBind with Entity Navigated property带有实体导航属性的 ASP GridView DataBind
【发布时间】:2011-04-08 16:39:19
【问题描述】:

我有一个具有实体 ClassA 属性的 GridView DataBind,它工作正常。 我可以直接在 ASPX 文件中绑定以下属性。 ClassA.Id ClassA.Name 等等

但是 ClassA 也有到相关 ClassB 的导航属性。我想在同一个 GridView 中显示相关的 classB 的属性。

我尝试在 GridView 中绑定以下内容,但即使我能够在调试模式下正确评估以下值(实体在需要时执行延迟加载),它也不起作用。 ClassA.classB.Name

我应该如何进行?

【问题讨论】:

    标签: asp.net linq entity-framework gridview


    【解决方案1】:

    您可以通过具有如下评估功能的模板列来实现您的目标;

    <asp:TemplateField HeaderText="Name" SortExpression="Name">
        <ItemTemplate>
            <EditItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server"
                    Text='<%# Eval("ClassA.ClassB.Name") %>'></asp:TextBox>
            </EditItemTemplate>
            <asp:Label ID="Label1" runat="server"
                Text='<%# Eval("ClassA.ClassB.Name") %>'></asp:Label>
        </ItemTemplate>
    </asp:TemplateField>
    

    这种方法的缺点是使用后期绑定 eval 方法禁用双向数据绑定功能。

    【讨论】:

    • 感谢您的建议。它运作良好,但正如您所说,它不启用 2 路数据绑定。你有什么选择吗?
    • 有一些替代方案,例如为您的数据源实现 ITypedlist 或 IBindingList 接口。但这不是一项微不足道的任务。因此,您应该决定是否值得创建自定义绑定提供程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多