DetailsView不使用DataSource

时间:2012-09-21 16:06:46

标签: c# asp.net .net detailsview

我正在尝试使用详情视图。

这是我的DataSource enter image description here

我这样传递。

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

2 个答案:

答案 0 :(得分:1)

您可以使用

进行调整
this.dvOrderInformation.DataSource = Connection.GetDataTable([sql]);
this.dvOrderInformation.DataBind();

Nota:它的正常行不包含列,因此他找不到列名

DataField =“OrderID”为DataColumn.Name

答案 1 :(得分:0)

找到了解决方案。

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

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