3

localhost で ASP.NET ページを開発し、それをサーバーにアップロードしています。ローカルホストでは、GridView の BoundField の DataField プロパティでネストされたクラスを正常に使用しています。ネストされたクラスとは、これを意味DataField="Object.property"Objectます。 は、GridView の行にバインドされたデータ項目のプロパティです。すべて正常に動作します。しかし、サーバーに Web サイトを公開すると、例外が発生します。

'Object.property' という名前のフィールドまたはプロパティが、選択したデータ ソースで見つかりませんでした。

私は解決策を見つけようとしていて、これを見つけました:ネストされたクラスのプロパティにバインドされた GridView

私は見つけ続けましたが、バインドされたフィールドでネストされたクラスを使用することは不可能であるとどこでも言及されていました。しかし、ローカルホストで私にとって魅力のように機能します。

誰かが理由を知っていますか?.NET Framework の最新バージョンですか (localhost にバージョン 4.5 をインストールし、サーバーにバージョン 4 をインストールしました)、それとも何ですか? はい、バージョンが理由であることは明らかですが、それについての言及は見つかりませんでした。

ご説明いただきありがとうございます。うぃぃぃぃ

4

1 に答える 1

0

BoundField 列には、インスタンスに直接関連付けられたプロパティのみが表示されます

したがって、ネストされたクラス プロパティにアクセスするには、ItemTemplate で DataBinder.Eval を使用する必要がある唯一の方法があります。

コードは次のとおりです。

<asp:TemplateField>
<ItemTemplate>
    <%#DataBinder.Eval(Container.DataItem, "NestedClass.Name")%>
</ItemTemplate>

于 2014-12-03T06:37:20.363 に答える