【问题标题】:A field or property with the name 'OrderID' was not found on the selected data source在所选数据源上找不到名为“OrderID”的字段或属性
【发布时间】:2014-07-15 09:58:09
【问题描述】:

在 asp.net 中处理多级网格视图,不断收到此错误。绑定列表会导致此错误。 GridViewOrder 没有获取 OrderID 属性,但我已经定义了它。

类的代码是:

 public class Customer
    {
        public List<Order> Orders { get; set; }
    }

调用内部网格的函数是:

 protected void GridViewCustomer_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                if(e.Row.RowType == DataControlRowType.DataRow)
                {
                    string customerID = GridViewCustomer.DataKeys[e.Row.RowIndex].Value.ToString();
                    GridView GridViewOrders = (GridView)e.Row.FindControl("GridViewOrders");
                   var lstOrders = from orders in SortCustomer()
                                            where orders.CustomerID == customerID
                                            select orders.Orders;
                    GridViewOrders.DataSource = lstOrders.ToList();
                    GridViewOrders.DataBind(); // This line generating error
                }
            }

aspx代码如下:

<asp:TemplateField HeaderText="Orders">
                    <ItemTemplate>
                        <asp:GridView ID="GridViewOrders" runat="server" 
                             AutoGenerateColumns="False" >

                            <Columns>
                                <asp:BoundField DataField="OrderID" HeaderText="Order Id" />
                                <asp:BoundField DataField="OrderDate" HeaderText="Order Date" />
                                <asp:BoundField DataField="Total" HeaderText="Total" DataFormatString="{0:c}" />
                            </Columns>


                        </asp:GridView>
                    </ItemTemplate>
                </asp:TemplateField>

【问题讨论】:

  • Order 类在哪里?
  • 属性名是OrderID还是OrderId?

标签: c# asp.net linq gridview aspxgridview


【解决方案1】:

您需要SelectMany,因为目前您正尝试将GridView 绑定到订单列表列表:

var lstOrders = SortCustomer().Where(c => c.CustomerID == customerID)
                              .SelectMany(c => c.Orders);

【讨论】:

  • 谢谢,你救了我的命。
猜你喜欢
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多