0

XML データを表示したいデータセットとグリッドビューを備えた ASP サイトがあります。

グリッドビューは自動的に生成されず、ホテル ID、名前、ステータス、都市、国を検索するように設定されています。

現在、XML を手動で記述しましたが、この XML に必要なラッパー タグと追加のエラー タグを含めましたが、それらが含まれるたびに、gridview が "HOTEL_ID" プロパティを見つけることができなかったというエラーが表示されます。追加データがなくても問題なく動作します。

XML の例:

<REQUEST><ACTION>HOTEL_LIST</ACTION><RESPONSE><RESULT>0</RESULT>
<HOTELS>
<HOTEL><HOTELID>hot01</HOTELID><NAME>hotel test 1</NAME><CITY>birmingham</CITY><COUNTRY>england</COUNTRY><STATUS>active</STATUS></HOTEL>
<HOTEL><HOTELID>hot02</HOTELID><NAME>hotelabctestabc2abc</NAME><CITY>barca</CITY><COUNTRY>spain</COUNTRY><STATUS>inactive</STATUS></HOTEL>
<HOTEL><HOTELID>hot03</HOTELID><NAME>hotelabctestabcire</NAME><CITY>dublin</CITY><COUNTRY>ireland</COUNTRY><STATUS>active</STATUS></HOTEL>    
</HOTELS>
<ERRORS><ERROR><CODE></CODE><MESSAGE></MESSAGE></ERROR></ERRORS></RESPONSE></REQUEST>`

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

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles   Me.Load

    Dim teststring As String = "THE XML SHOWN ABOVE"

    Dim ds As New DataSet()
    Dim doc As New XmlDocument()

    doc.LoadXml(teststring)
    ds.ReadXml(New System.IO.StringReader(doc.OuterXml))

    GridView1.DataSource = ds
    GridView1.DataBind()


End Sub

`

唯一のホテル情報だけを残して削除すると、機能してプロパティが見つかります。

<HOTELS><HOTEL><HOTELID>hot01</HOTELID><NAME>hotel test 1</NAME><CITY>birmingham</CITY><COUNTRY>england</COUNTRY><STATUS>active</STATUS></HOTEL>

<HOTEL><HOTELID>hot02</HOTELID><NAME>hotelabctestabc2abc</NAME><CITY>barca</CITY><COUNTRY>spain</COUNTRY><STATUS>inactive</STATUS></HOTEL><HOTEL>

<HOTELID>hot03</HOTELID><NAME>hotelabctestabcire</NAME><CITY>dublin</CITY><COUNTRY>ireland</COUNTRY><STATUS>active</STATUS></HOTEL></HOTELS>

私は何を間違っていますか?

ありがとう。

4

1 に答える 1

1

そのような XML ドキュメントを DataSet にロードすると、データに基づいて複数のテーブルが作成されます。

ホテル情報のみを GridView にバインドするには、データセット内のどのテーブルにデータが含まれているかを特定し、これを GridView にバインドする必要があります。

例えば

GridView1.DataSource = ds.Tables(index_of_table_which_contains_data)

それが役立つことを願っています。

于 2012-09-14T09:14:41.363 に答える