ASP.NET標準コンポーネントによるサンプル
ASP.NET Webアプリの作成準備が整ったので、Index.aspxにASP.NET標準コンポーネントを使ってサンプル画面を作成してみましょう。
ASP.NET標準コンポーネントによる画面デザイン
今回のサンプルでは、場所の名前を入力して検索した結果のトップの場所についての画像を自動的に表示する仕組みを作成します。
そこで、画面上には検索キーワードを入れるTextBox、検索を実行するButton、結果を一覧表示するDataList、エラーを表示するLabelの各コントロールを配置します。
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Index.aspx.vb" Inherits="CZ1209FourSquare.Index" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>CZ1209FourSquare</title> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="Keyword_TextBox" runat="server"></asp:TextBox> <asp:Button ID="Serach_Button" runat="server" Text="検索" /> </div> <div> <asp:DataList ID="Photo_DataList" runat="server" RepeatColumns="5" RepeatDirection="Horizontal"> <ItemTemplate> <asp:Image ImageUrl='<%# Eval("Photo") %>' runat="server" Width="125" Height="125" /> </ItemTemplate> </asp:DataList> </div> <div> <asp:Label ID="Error_Label" runat="server" ForeColor="Red" /> </div> </form> </body> </html>
DataListコントロールの中には、Imageコントロールを配置しfoursquareから取得した画像URLを使って画像表示できるように定義します。
ASP.NET標準コンポーネントによる画面表示用コード例
この画面定義に対してfoursquareから取得した写真を表示するためのコードを作成します。
Public Class Index Inherits System.Web.UI.Page Private WithEvents Model As New VenueModel Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Load If Not Me.IsPostBack Then Me.Keyword_TextBox.Text = "日本マイクロソフト" End If End Sub Protected Sub Search_Button_Click(sender As Object, e As EventArgs) Handles Serach_Button.Click Try Dim item As TVenueItem Dim photos As IEnumerable(Of TVenuePhoto) Me.Error_Label.Text = String.Empty item = Me.Model.Search(Me.Keyword_TextBox.Text) photos = Me.Model.GetPhotos(item.VenueID) Me.Photo_DataList.DataSource = photos Me.Photo_DataList.DataBind() Catch ex As Exception Me.Error_Label.Text = ex.Message End Try End Sub End Class
using System; using System.Collections.Generic; namespace CZ1209FourSquareCS { public partial class Index : System.Web.UI.Page { private VenueModel Model = new VenueModel(); protected void Page_Load(object sender, EventArgs e) { if (! this.IsPostBack) { this.Keyword_TextBox.Text = "日本マイクロソフト"; } } protected void Search_Button_Click(object sender, EventArgs e) { try { TVenueItem item; IEnumerable<TVenuePhoto> photo; this.Error_Label.Text = String.Empty; item = this.Model.Search(this.Keyword_TextBox.Text); photo = this.Model.GetPhotos(item.VenueID); this.Photo_DataList.DataSource = photo; this.Photo_DataList.DataBind(); } catch (Exception ex) { this.Error_Label.Text = ex.Message; } } } }
Model.Searchメソッドを使ってキーワード検索を行い、その結果として得られたVenueIDを指定してModel.GetPhotosメソッドを実行し、VenueIDに紐付いた写真を取得してます。
取得した写真はDataListのDataSourceに指定し、最後にDataBindメソッドを実行して画面に表示しています。
ASP.NET標準コンポーネントによる実行結果
プログラムができ上がったら実行してみましょう。
[検索]ボタンをクリックして画像が表示できれば完成です。