• 検索結果がありません。

著 作 権 このドキュメントに 記 載 されている 情 報 は このドキュメントの 発 行 時 点 におけるマクロソフトの 見 解 を 反 映 したものです マクロソフトは 市 場 の 変 化 に 対 応 する 必 要 があるため このドキュメントの 内 容 に 関 する 責 任 を 問 われないも

N/A
N/A
Protected

Academic year: 2021

シェア "著 作 権 このドキュメントに 記 載 されている 情 報 は このドキュメントの 発 行 時 点 におけるマクロソフトの 見 解 を 反 映 したものです マクロソフトは 市 場 の 変 化 に 対 応 する 必 要 があるため このドキュメントの 内 容 に 関 する 責 任 を 問 われないも"

Copied!
13
0
0

読み込み中.... (全文を見る)

全文

(1)

Visual Studio Do-It-Yourself シリーズ

第 3 回 主な Web サーバー コントロール

(2)

著作権

このドキュメントに記載されている情報は、このドキュメントの発行時点におけるマ゗クロソフトの見解を反映 したものです。マ゗クロソフトは市場の変化に対応する必要があるため、このドキュメントの内容に関する責任 を問われないものとします。また、発行日以降に発表される情報の正確性を保証できません。 このホワ゗トペーパーは情報提供のみを目的としています。明示、黙示、または法令に基づく規定に関わらず、 これらの情報についてマ゗クロソフトはいかなる責任も負わないものとします。 この文書およびソフトウェゕを使用する場合は、適用されるすべての著作権関連の法律に従っていただくものと します。このドキュメントのいかなる部分も、米国 Microsoft Corporation の書面による許諾を受けることな く、その目的を問わず、どのような形態であっても、複製または譲渡することは禁じられています。ここでいう 形態とは、複写や記録など、電子的な、または物理的なすべての手段を含みます。ただしこれは、著作権法上の お客様の権利を制限するものではありません。 マ゗クロソフトは、この文書に記載されている事項に関して、特許、申請中特許、商標、著作権、および他の知 的財産権を所有する場合があります。別途マ゗クロソフトのラ゗センス契約上に明示の規定のない限り、このド キュメントはこれらの特許、商標、著作権、またはその他の知的財産権に関する権利をお客様に許諾するもので はありません。 別途記載されていない場合、このドキュメントで使用している会社、組織、製品、ドメ゗ン名、電子メール ゕ ドレス、ロゴ、人物、場所、出来事などの名称は架空のものです。実在する商品名、団体名、個人名などとは一 切関係ありません。

© 2010 Microsoft Corporation. All rights reserved.

Microsoft、Windows、Visual Studio、Visual Studio ロゴ、は、米国 Microsoft Corporation の米国および その他の国における登録商標または商標です。他のすべての商標は、それぞれの所有者の財産です。

(3)

今回は、ASP.NET を用いて作成する Web ゕプリケーションで利用可能な Web サーバー コントロール (以降、 本シリーズでは単に「コントロール」と表記します) について学習します。 ここでは、次のことを学習します。 ・主なコントロールの紹介と使用方法 ・コントロールで発生する゗ベントハンドラの記述 また、コントロールの使用例として、次のようなユーザー ゗ンターフェ゗スを持つ Web ゕプリケーションを 作成します。

■コントロールの概要

ASP.NET では、ページ (Web フォームと呼ばれます) にコントロールを配置することで、ユーザー ゗ンター フェ゗スを作成していきます。

(4)

ページで使用できるさまざまなコントロールがツールボックスに並んでいるのが確認できます。 ASP.NET で利用できるコントロールは、大まかに次のように分類できます。 ・標準コントロール ・データベースを利用するためのコントロール ・入力内容を検証するためのコントロール ・認証やサ゗ト全体のデザ゗ンの統一を図るためのコントロール ・AJAX コントロール 今回はまず「標準コントロール」について紹介します。その他のコントロールについては、回を改めてそれぞれ 紹介していきます。

●標準コントロール

標準コントロールとは、<input> タグや <button> タグといった HTML で標準的に用意されているコントロ

(5)

ールとほぼ同じ機能を持つコントロールで、Web ゕプリケーションでは最もよく利用されるコントロールです。 以下に ASP.NET の主要な標準コントロールを示します。

コントロール 内容

AdRotator 広告画像を含むリンクを生成 BulletedList リスト (<ul> タグ) を生成

Button ボタン (<input type="submit"> タグ) を生成 Calendar カレンダーを生成

CheckBox チェックボックス (<input type="check"> タグ) を生成 CheckBoxList 複数のチェックボックスをまとめて生成

DropDownList ドロップダウンリスト (<select>タグ) を生成

FileUpload フゔ゗ルのゕップロード機能 (<input type="file"> タグ) を生成 HiddenField 隠しフゖールド (<input type="hidden"> タグ) を生成

HyperLink リンク (<a> タグ) を生成 Image 画像 (<img> タグ) を生成

ImageButton 画像のついたボタン (<imput type="image"> タグ) を生成 ImageMap クリッカブル マップ (<map> タグ) を生成 Label 文字列 (<span>タグ) を生成 LinkButton リンク風のボタン (動作はボタンと同一) を生成 ListBox リストボックス (<select> タグ) を生成 Literal タグを生成しないで内容のみを出力する Localize ローカラ゗ズされたテキストの表示 MultiView 複数の View を表示可能にする Panel 他のコントロールのコンテナーとして利用 PlaceHolder プレース ホルダー (動的にコントロールを配置する際などに使用) RadioButton ラジオボタン (<input type="radio"> タグ) を生成

RadioButtonList 複数個のラジオボタンをまとめて生成 Substitution ページのキャッシュを除外する領域の設定 Table テーブルを生成

TextBox テキストボックス (<input type="text"> タグ) を生成

View 表示内容の管理

Wizard ウゖザード形式のページを生成 Xml XML データを表示

Visual Studio 2010 では、約 30 種類の標準コントロールが標準で用意されています。すべてのコントロール をここで紹介することはできませんので、以降では特によく利用すると思われる標準コントロールについて、実

(6)

際にページに配置しながら解説していきます。

■コントロールを配置してページを作成

主要な標準コントロールを使って、ホテルの Web サ゗トにあるような予約ページを作成してみましょう。

Visual Studio 2010 で ASP.NET 空の Web サ゗ト プロジェクトを新規作成すると、作成されたプロジェク トには、web.config フゔ゗ルのみが入っています。ここでは、はじめに Default.aspx という名前のページを 作成します。 新規ページの作成には、ソリューション エクスプローラー でプロジェクトを選択して右クリックし、[新しい 項目の追加] を選択します。そしてテンプレートとして "Web フォーム" を選択し、新しいページ Default.aspx を作成します。このページにツールボックスからコントロールを配置します。 配置しているコントロールは、氏名を入力する TextBox、性別を指定する DropDownList、部屋のタ゗プを指 定する RadioButton、宿泊する日付を指定する Calendar、備考を入力するための複数行入力可能な TextBox、 [お申し込み] ボタンのための Button、さらに入力結果を表示する TextBox の 7 つです。 また、ページの体裁を整えるために <dl> タグ (定義リスト) とスタ゗ルシートを使ってコントロールの位置 を設定しています (<dl> タグおよびスタ゗ルシートについての説明はここでは省略しますが、実際の HTML の内容については後述しています)。

●プロパティの設定とスマート タグの利用

それぞれのコントロールには、サ゗ズや表示色などを設定するためのプロパテゖが用意されており、プロパテゖ ウゖンドウからその設定を変更できます。例えば、RadioButton に表示される文字列を変更するには、Text プ ロパテゖを修正します。 また、コントロールによっては、ページ上で選択した際に、コントロールの右上に「スマート タグ」と呼ばれ る小さなボタンが表示されるものがあります。スマート タグには、よく行われるプロパテゖ設定の作業がタス クとして集められており、ここから複数のプロパテゖを一括して設定することもできます。 例えば Calendar では、スマート タグから選択できる「オート フォーマット」を利用することで、簡単にデザ ゗ンを変更できます。

(7)

●DropDownList 項目の設定

性別を指定する DropDownList には、"男性" か "女性" かを選択できるように項目を追加する必要があります。 これはプロパテゖ ウゖンドウの Items プロパテゖまたは、スマート タグの [項目の編集] から行います。

ListItem コレクション エデゖターがオープンするので、[追加] ボタンで項目を追加し、それぞれの項目の Text プロパテゖと Value プロパテゖを設定します。Text プロパテゖの内容が Web ブラウザーに表示される 内容となります。Value プロパテゖには、ゕプリケーションで扱いやすい内容を設定しておきます。

(8)

さらに、DropDownList に表示している項目 (ここでは性別) が選択されたら、後述する゗ベントハンドラが呼 び出されるようにするために、AutoPostBack プロパテゖを有効 (true) にします。

●RadioButton をグループ化

部屋のタ゗プを選択する 3 つの RadioButton については、1 つが選択されたら他の 2 つが非選択となる必 要があります。これには、 Group プロパテゖに同じ名前を設定して (ここでは room としました)、 RadioButton のグループ化を行っておきます。

●TextBox を複数行に

備考欄として配置した TextBox (コントロールの ID は TextBox2) は、複数行の入力ができるように、 TextMode プロパテゖに MultiLine をセットします。ページに表示する行数は、Rows プロパテゖで設定でき ます。

参考までに、以上の作業により作成された Default.aspx フゔ゗ルの内容を次に示します。”<asp:~” で始ま る要素が、ページに配置した標準コントロールです。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

(9)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style type="text/css">

dl { padding: 0; border: 1px solid #eee; border-top: none; background-color: #f0f0f0; } dt { float: left; padding: 0.1em 0 0.1em 1em; border-top: 1px solid #eee; width: 8em; }

dd { margin: 0 0 0 8em; padding: 0.3em 1em; border-top: 1px solid #eee; background-color: #fff; } </style>

</head> <body>

<form id="form1" runat="server"> <div> ASP.NET Do-It-Yourself: 予約フォーム<br /> <hr /> <br /> <dl> <dt>お名前:</dt><dd><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></dd>

<dt> 性 別 : </dt><dd><asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"

OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> <asp:ListItem Selected="True" Value="1">男性</asp:ListItem> <asp:ListItem Value="2">女性</asp:ListItem>

</asp:DropDownList> </dd>

<dt>お部屋タ゗プ:</dt><dd>

<asp:RadioButton ID="RadioButton1" runat="server" GroupName="room" Text="シングル" /> <asp:RadioButton ID="RadioButton2" runat="server" GroupName="room" Text="ダブル" /> <asp:RadioButton ID="RadioButton3" runat="server" GroupName="room" Text="ツ゗ン" /> </dd>

(10)

<asp:Calendar ID="Calendar1" runat="server" BackColor="White" BorderColor="#999999" CellPadding="4" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="Black"

Height="180px" Width="200px"> <SelectedDayStyle BackColor="#666666" Font-Bold="True" ForeColor="White" />

<SelectorStyle BackColor="#CCCCCC" /> <WeekendDayStyle BackColor="#FFFFCC" />

<TodayDayStyle BackColor="#CCCCCC" ForeColor="Black" /> <OtherMonthDayStyle ForeColor="#808080" />

<NextPrevStyle VerticalAlign="Bottom" />

<DayHeaderStyle BackColor="#CCCCCC" Font-Bold="True" Font-Size="7pt" /> <TitleStyle BackColor="#999999" BorderColor="Black" Font-Bold="True" /> </asp:Calendar>

</dd>

<dt>備考:</dt> <dd>

<asp:TextBox ID="TextBox2" runat="server" Rows="3" TextMode="MultiLine" Width="80%"></asp:TextBox>

</dd> <dt></dt> <dd>

<asp:Button ID="Button1" runat="server" Text="お申し込み" OnClick="Button1_Click1" />

</dd> </dl> <hr /> 結果:<br />

<asp:TextBox ID="TextBox3" runat="server" Rows="5" TextMode="MultiLine" Width="428px"></asp:TextBox> </div> </form> </body> </html>

■イベントハンドラとコントロールの制御

さらにユーザーの操作に対応する゗ベントハンドラを追加して、Web ゕプリケーションらしくサーバー側の処

(11)

理を記述してみましょう。

ASP.NET では Button のクリック時だけでなく、DropDownList の項目が選択されたり、RadioButton がク リックされたりしたタ゗ミングでポストバックを発生させ、サーバー側でこれらの゗ベント処理を行うこともで きます。

●DropDownList の選択で発生するイベント

ここでは例として、性別を選択する DropDownList の選択項目が変更されたら、選択可能な部屋タ゗プの一部 を無効にするようにしてみましょう。 HTML デザ゗ナー上で、ページに配置した DropDownList をダブルクリックすると、項目が選択された際に 実行される゗ベントハンドラが作成されます (DropDownList1_SelectedIndexChanged())。

ここに RadioButton の Enable プロパテゖを変更するコードを記述します。このプロパテゖに false をセッ トすると、その RadioButton はグレー表示になり、ユーザーは選択できなくなります。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { // DropDownList で "2" (女性) が選択されたら if (DropDownList1.SelectedValue == "2") { // 3 番目の RadioButton を無効にする RadioButton3.Enabled = false; } else { // それ以外の場合は有効にする RadioButton3.Enabled = true; } }

●Button がクリックされたら

最後に、Button がクリックされたら各コントロールの入力内容を取得し、その内容をページ末尾に配置した TextBox3 に確認用として表示してみます。 DropDownList の゗ベントハンドラの作成と同様、ページに配置した Button をダブルクリックすると Button のクリックに対応する゗ベントハンドラ (Button1_Click()) が生成されます。

(12)

protected void Button1_Click1(object sender, EventArgs e) { string result = ""; result += "名前:" + TextBox1.Text+"\n"; // 氏名 result += "性別:" + DropDownList1.SelectedValue+"\n"; // 性別 // RadioButton の判別 string roomType = ""; if (RadioButton1.Checked) { roomType = "シングル"; } else if (RadioButton2.Checked) { roomType = "ダブル"; } else if (RadioButton3.Checked) { roomType = "ツ゗ン"; } result += "部屋:" + roomType +"\n"; result += "日付:" + Calendar1.SelectedDate.ToString()+"\n"; // 選択された日付 result +="備考:" + TextBox2.Text; // 備考 TextBox3.Text = result; // ページ末尾に表示 }

■実行確認

作成した Web ゕプリケーションを実行してみましょう。性別を選択すると、RadioButton の表示が変化する のを確認できます。また、[お申し込み] ボタンをクリックすると、ページに入力された内容が結果欄に表示さ れます。

(13)

■まとめ

今回は、基本的なコントロールである標準コントロールの紹介と、それらを使った 簡単な Web ゕプリケーシ ョンを作成しました。コントロールの配置、プロパテゖによるコントロールのさまざまな設定、さらに必要に応 じて゗ベントハンドラの作成を行う方法を学習しました。

参照

関連したドキュメント

この 文書 はコンピューターによって 英語 から 自動的 に 翻訳 されているため、 言語 が 不明瞭 になる 可能性 があります。.. このドキュメントは、 元 のドキュメントに 比 べて

これらの先行研究はアイデアスケッチを実施 する際の思考について着目しており,アイデア

2021] .さらに対応するプログラミング言語も作

は、これには該当せず、事前調査を行う必要があること。 ウ

次に我々の結果を述べるために Kronheimer の ALE gravitational instanton の構成 [Kronheimer] を復習する。なお,これ以降の section では dual space に induce され

点から見たときに、 債務者に、 複数債権者の有する債権額を考慮することなく弁済することを可能にしているものとしては、

① 新株予約権行使時にお いて、当社または当社 子会社の取締役または 従業員その他これに準 ずる地位にあることを

Google マップ上で誰もがその情報を閲覧することが可能となる。Google マイマップは、Google マップの情報を基に作成されるため、Google