【问题标题】:Displaying nested anonymous type显示嵌套匿名类型
【发布时间】:2011-11-30 16:34:54
【问题描述】:

我正在尝试在 GridView 控件中显示嵌套的匿名类型。但 GridView 控件仅显示 OrderID 和 OrderDate 字段(即不显示嵌套类型)。

我正在使用以下代码:

protected void btn2_Click(object sender, EventArgs e)
{
    using (EStoreEntities ctx2 = new EStoreEntities())
    {    
        var query = (from o in ctx2.Orders
                     select new 
                     { 
                        o.OrderID, 
                        o.OrderDate,
                        nest_anon = new 
                        { 
                            o.Customer, 
                            o.ShipAddress,
                            o.Status 
                        }
                    });    

        tb2.Text = (query as ObjectQuery).ToTraceString();                 
        gv2.DataSource=query;
        gv2.DataBind();
    }    
}

我应该在我的代码中修复什么以在我的 GridView 中显示匿名和嵌套匿名类型?

【问题讨论】:

  • 您有任何错误吗?您能否向我们展示您尝试在其中显示嵌套对象数据的 GridView 标记?
  • 为什么需要嵌套?只需将对象展平即可在网格视图中显示。

标签: c# asp.net entity-framework gridview ado.net


【解决方案1】:

您将无法执行此操作,因为匿名类型仅在定义它的范围内有效 - 即按钮单击事件处理程序。

您需要创建一个真实的类型,然后确定如何在您的网格中显示它。

【讨论】:

  • 这是不正确的。可以在创建它们的方法之外返回和使用匿名类型。
  • 克里斯,我应该创建适合我的 linq 结果的类型类吗?
  • @jason - 发布一个解释方法的答案。
  • @Michael - 是的。虽然 jason 可能是正确的,但使用命名类可能会更简单。
  • 克里斯,什么类型必须是类中的嵌套匿名类型?必须是复杂类型吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-12
  • 2023-03-19
相关资源
最近更新 更多