0

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

这是我的数据源 在此处输入图像描述

我是这样传递的。

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 它工作正常。任何想法我在这里做错了什么。

4

2 回答 2

1

You can adjust with

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

Nota : it's normal row don't contain column, so he don't find column name

DataField="OrderID" is DataColumn.Name

于 2012-09-21T16:27:25.173 回答
0

找到了解决方案。

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

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

于 2012-09-25T08:26:39.707 回答