【问题标题】:DetailsView Not Working with DataSource详细信息视图不使用数据源
【发布时间】:2012-09-21 16:06:45
【问题描述】:

我正在尝试使用详细信息视图。

这是我的数据源

我是这样传递的。

IEnumerable<DataRow> row = Connection.GetDataTable([sql]).AsEnumerable();

this.dvOrderInformation.DataSource = row;
this.dvOrderInformation.DataBind();

我是这样绑定的。

<asp:DetailsView ID="dvOrderInformation" runat="server" Height="50px" Width="100%" AutoGenerateRows="false">
    <HeaderTemplate>
        Order
    </HeaderTemplate>
    <FieldHeaderStyle Width="150px" />
    <Fields>
        <asp:BoundField HeaderText="Order Number:" DataField="OrderID" />
    </Fields>
</asp:DetailsView>

当我尝试这个时,我会收到消息。

DataBinding: 'System.Data.DataRow' does not contain a property with the name 'OrderID'.

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

如果我将它直接绑定到 DataGrid,它可以正常工作。任何想法我在这里做错了什么。

【问题讨论】:

    标签: c# asp.net .net detailsview


    【解决方案1】:

    你可以调整

    this.dvOrderInformation.DataSource = Connection.GetDataTable([sql]);
    this.dvOrderInformation.DataBind();
    

    注意:正常的行不包含列,所以他没有找到列名

    DataField="OrderID" 是DataColumn.Name

    【讨论】:

      【解决方案2】:

      找到了解决办法。

      this.dvOrderInformation.DataSource = Connection.GetDataSet([sql]);
      this.dvOrderInformation.DataBind()
      

      关键是我必须使用 DataSet 而不是 DataTable。

      【讨论】:

        猜你喜欢
        • 2010-09-28
        • 1970-01-01
        • 2010-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多