ASP.NET 徹底活用術(Part2)のホームへ戻る

■書籍をジャンル別に検索してDataGridに表示

 

AmazonJPクラスには、書籍をISBN、ジャンル、キーワード、タイトル、著者名で検索するメソッドが用意されています。ここでは、書籍をジャンルで検索して結果をDataGridに表示するWebページを作成します。アマゾンからジャンルで検索するには、表1に示すようなノード番号を指定して検索します。

 

1 アマゾンのノード番号と名称

ノード番号

名称

465610

ベストセラー

466282

ビジネス・経済・キャリア

492054

投資・金融・会社経営

571584

社会・政治

571582

人文・思想

466284

文学・評論

466286

歴史・地理

・・・

・・・

3148931

教育・学参・受験

500592

タレント写真集

 

新規Webページを作成したら、デザイナにRadioButtonListDataGridを配置します。RadionButtonListAutoPostBackプロパティに「True」を設定します。RepeatColumnsプロパティに「4」を設定してジャンルが4列で表示されるようにします。RadioButtonListのプロパティウィンドウからItems(コレクション)をクリックして、「ListItemコレクションエディタ」を表示したら表1のノード番号と名称を入力します。

 

1 ListItemコレクションエディタからノード番号と名称を入力

 

DataGridのプロパティウィンドウから「プロパティビルダ」のリンクをクリックして「DataGridプロパティ」を表示します。[]のタブから表2に示すような連結列とテンプレート列を追加します。

 

2 DataGridの列とプロパティ

列の種類

ヘッダーテキスト

データフィールド

連結列

ID

AutoID

テンプレート列

表紙

 

連結列

タイトル

Title

連結列

著者

Author

連結列

日付

PublicationDate

 

テンプレート列のItemTemplateには、HTML<a>…</a>タグとImageコントロールを追加します。

 

<asp:TemplateColumn HeaderText="表紙">

  <ItemTemplate>

    <a href='<%# Container.DataItem("AmazonURL") %>' target="_blank">

      <asp:Image id="Image1" runat="server"

        ImageAlign="Left"

        ImageUrl='<%# Container.DataItem("MediumImage") %>' />

    </a>

  </ItemTemplate>

</asp:TemplateColumn>

 

 

2 デザイナにRadioButtonListDataGridを作成

 

RadioButtonListSelectedIndexChangedイベントハンドラを追加したら、次のコードを追加します。

 

Sub radlNodes_SelectedIndexChanged(sender As Object, e As EventArgs)

  Dim strNode As String = radlNodes.SelectedValue

  dgrdBooks.DataSource = AmazonServices.AmazonJP.SearchBooksByNode(strNode)

  dgrdBooks.DataBind()

End Sub

 

アマゾンの書籍をジャンルで検索するには、AmazonJPクラスのSearchBooksByNodeメソッドを使用します。このメソッドの引数には、ノード番号を指定します。SearchBooksNodeからは、検索結果としてDataViewが返されます。DataViewには、該当する書籍の上位(売上げ順)10件が格納されています。DataViewは、表3に示す列から構成されています。

 

RadionButtonListSelectedValueプロパティからノード番号を取得したら、SearchBooksByNodeメソッドの引数に指定して実行します。SearchBooksByNodeの戻り値(DataView)DataGridDataSourceプロパティに設定したら、DataBindメソッドを実行してバインドします。検索結果がDataGridに表示されます(3)

 

3 DataViewの列

No

列名

内容

ASIN

ISBN番号

2

SmallImage

表紙のイメージ(小)

3

MediumImage

表紙のイメージ(中)

4

LargeImage

表紙のイメージ(大)

5

AmazonURL

書籍のURL

6

Title

書名

7

Author

著者名

8

ListPrice

定価

9

SalesRank

ランク

9

PublicationDate

発刊日

10

Publisher

出版社

11

Binding

製本(単行本、大型本、・・・)

12

AverageRating

評価

13

TotalReviews

レビュー数

14

ProductGroup

商品グループ

15

AmazonPrice

アマゾンの売価

 

 

3 ジャンルから「ベストセラー」を選択して検索した結果

 

 

ASP.NET 徹底活用術(Part2)のホームへ戻る