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

あなたはで調整することができます

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

注:通常の行には列が含まれていないため、列名が見つかりません

DataField="OrderID"はDataColumn.Name

于 2012-09-21T16:27:25.173 に答える
0

解決策を見つけました。

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

重要なのは、DataTableではなくDataSetを使用する必要があるということです。

于 2012-09-25T08:26:39.707 に答える