SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

使ってみようASP.NET AJAX Control Toolkit

使ってみようASP.NET AJAX Control Toolkit(入力補助コントロール編)

ASP.NET AJAX Control Toolkitの利用方法を学習する 前編


FilteredTextBoxExtender・NumericUpDownExtender・Rating

 ここから先は実際に各コントロールの特徴と利用する上で必須のプロパティなどの設定などを解説しながら進めていきます。先ずは、より直感的で便利なデータ入力を可能とするエクステンダについてです。

FilteredTextBoxExtenderコントロール

 FilteredTextBoxExtenderコントロールはTextBoxコントロールに入力されるデータの制限機能を付加するエクステンダコントロールです。実際に利用するプロパティはFilterTypeプロパティとValidCharsプロパティです。

表2
プロパティ名概要
FilterTypeフィルタのタイプ「LowercaseLetters」(半角アルファベットの小文字のみ入力可能)、「Numbers」(半角数字のみ入力可能)、「UppercaseLetters」(半角アルファベットの大文字のみ入力可能)、「Custom」(前述3つのフィルタを組み合わせたり、例外を設定したフィルタの入力を可能)”の4種類の中から1つ設定
ValidCharsFilterTypeプロパティがCustomに設定されている時に付け加える例外キャラクター
TargetControlIDフィルタ設定を行う「TextBoxコントロール」のIDを設定
エクステンダコントロールは既存のコントロールを拡張する
 各種エクステンダコントロールのTargetControlIDプロパティの設定を行うことで、TargetControlIDプロパティに設定されたコントロールのプロパティウィンドウの上部に図1のように拡張されます(図はFilteredTextBoxExtenderコントロールの拡張プロパティ)。フォームデザイナから必要なプロパティの設定を行うことができます。
 しかし例外として、AnimationExtenderコントロール、UpdatePanelAnimationExtenderコントロール等、いくつかのコントロールではHTMLソース画面からしかプロパティ設定は行えないので確認する必要があります。
図1 FilteredTextBoxExtenderコントロールの拡張プロパティ
図1 FilteredTextBoxExtenderコントロールの拡張プロパティ

 メールアドレスのみを受け付けるようなTextBoxコントロールにしたい場合は次のような設定で実現できます。

default.aspx(一部)
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<ajaxToolkit:FilteredTextBoxExtender 
   ID="FilteredTextBoxExtender1" 
   runat="server" 
   TargetControlID="TextBox1" 
   FilterType="Custom, Numbers , LowercaseLetters" 
   ValidChars="-_@." />

 このコントロールの実行結果は体感しないと分からないのですが、サンプルを実行すると図2のようになります(ダウンロードサンプルのファイルは「/FilteredTextBoxExtender/FilteredTextBoxExtender.aspx」です)。

図2 FilteredTextBoxExtenderコントロールの実行結果
図2 FilteredTextBoxExtenderコントロールの実行結果
FilterredTextBoxExtenderコントロールの注意点
 このFilteredTextBoxExtenderコントロールは素晴らしいフィルタ機能を提供してくれるのですが、日本語の場合は決定を押してフォーカスがそのTextBoxコントロールから外れるまで文字列が表示されてしまいます。フォーカスが外れた際に表示が消えるのですが少しの間でも入力されてしまうので注意を促す一文を付け加える必要があります。

NumericUpDownExtenderコントロール

 NumericUpDownExtenderコントロールはTextBoxコントロールの横に表示されるボタンを押すことで値の増減や登録されているリストの表示を切り替える機能を付加するエクステンダコントロールです。通常の入力とは違い、テキスト入力の補助を行うことが可能です。

表3
プロパティ名概要
Width対象のTextBoxコントロールの幅を設定(増減ボタン込みの幅)
Refvalues列挙体の記述を行い、増減させる値を設定
TargetButtonDownID自分で作成したImgファイルの設定(Downボタン)
TargetButtonUpID自分で作成したImgファイルの設定(Upボタン)
TargetControlID値の増減を行うボタンを拡張させる「TextBoxコントロール」のIDを設定

 生まれた年を入力させる際にテキストボックスの値は変更させたくない環境などでは次のように設定することで実現できます。

default.aspx(一部)
<asp:TextBox ID="TextBox1" 
    runat="server" Text="1980" Enabled="False">
</asp:TextBox>
<ajaxToolkit:NumericUpDownExtender 
   ID="NumericUpDownExtender1" 
   runat="server" 
   TargetControlID="TextBox1" 
   Step="1"  
   Width="80"/>

 このコントロールの実行結果も体感しないと分からないのですが、サンプルを実行すると図3のようになります(ダウンロードサンプルのファイルは「/NumericUpDownExtender/NumericUpDownExtender.aspx」です)。

図3 NumericUpDownExtenderコントロールの実行結果
図3 NumericUpDownExtenderコントロールの実行結果

Ratingコントロール

 Ratingコントロールはユーザーがその項目に対して評価するために使用するコントロールで、マウスカーソルに合わせて評価が変更されるので、ユーザーにも分かりやすくフィードバックを得やすいコントロールだと言えます。このRatingコントロールは自身のプロパティウィンドウから設定が可能な数少ないコントロールです。このコントロールはCSSの設定をメインに利用します。以下に4種類のCSSクラスプロパティについてはすべて必須の設定となっています。StarCSSClassは表示する画像の幅、高さなどの表示に関するCSSを、その他の3種類のCSSクラスプロパティには画像を参照設定することが必要になっています。

表4
プロパティ名概要
AutoPostBackRatingの項目クリック時にPostbackを起こすかどうかを設定
CurrentRatingRatingの初期値を設定
MaxRatingRatingの最大値を設定
ReadOnlyRatingの変更ができるかどうかを設定
StarCSSClass表示するImageのCSS(サイズ等)を設定
WaitingStarCSSClass通信の時のImageのCSS(普通は画像参照)を設定
FilledStarCSSClass評価されている時のImageのCSS(普通は画像参照)を設定
EmptyStarCSSClass評価されていない部分のImageのCSS(普通は画像参照)を設定
RatingAlignImageの並びが水平か垂直かを設定
RatingDirectionImageの並び順を設定

 Ratingコントロールはスマートタグが実装されていて、そこからいくつかの項目を設定することができます(図4)。

図4 Ratingコントロールのスマートタグ
図4 Ratingコントロールのスマートタグ

 ページ呼び出し時に評価を3と設定して、最大で5まで評価可能なレーティングを作成する場合は次のような設定を行うことで実現できます。

default.aspx(一部)
<ajaxToolkit:Rating 
    ID="Rating1" 
    runat="server" 
    CurrentRating="3"
    MaxRating="5" 
    StarCssClass="formatStar" 
    WaitingStarCssClass="savedStar"
    FilledStarCssClass="filledStar" 
    EmptyStarCssClass="emptyStar" />

 各CSSは次のように設定することでRatingコントロールの表示を実現できます。

StyleSheet.css(一部)
.formatStar
{
  width:15px;
  height:15px;
  cursor:pointer;    
  display: block;
}

.savedStar
{
  background-image: url(Images/SavedStar.png);
}

.filledStar
{
  background-image: url(Images/FilledStar.png);
}

.emptyStar
{
  background-image: url(Images/EmptyStar.png);
}

 サンプルを実行すると図5のようになります(ダウンロードサンプルのファイルは「/Rating/Rating.aspx」です)。

図5 Ratingコントロールの実行結果
図5 Ratingコントロールの実行結果

次のページ
ReorderList・SliderExtender

修正履歴

この記事は参考になりましたか?

使ってみようASP.NET AJAX Control Toolkit連載記事一覧
この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト ナオキ(ナオキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/1249 2007/05/21 15:22

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー