SHOEISHA iD

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

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

japan.internet.com翻訳記事

ASP.NETアプリケーションにカラーピッカーコントロールを追加する

カラーピッカーコントロール「ColorPicker Extender」「ASP.NET Color Picker」を紹介

  • X ポスト
  • このエントリーをはてなブックマークに追加

oboutの無償のASP.NET Color Pickerコントロールの使用方法

 ASP.NETで利用できるカラーピッカーコントロールは、ACTのColorPicker Extender以外にもたくさんあります。ここではその中から、oboutASP.NET Color Pickerという無償のコントロールを紹介します。oboutは、多種多様なASP.NETサーバコントロールを商用製品としてリリースしていますが、Color Pickerコントロールは無償で利用でき、ACTのColorPicker Extenderよりも多機能なパレットを備えています。

 oboutのASP.NET Color Pickerコントロールを使用するには、まずobout Suiteをダウンロードします。この中には、oboutのASP.NETコントロールがすべて含まれています。ダウンロードした中には、Color Pickerコントロール専用のアセンブリ(obout_ColorPicker.dll)があります。このファイルをWebサイトのBinフォルダにコピーし、Color PickerコントロールをVisual Studioのツールボックスに追加します。

 obout Suiteのダウンロードファイルの中には多数のデモが含まれており、コンピュータ上で実際に動かしてみることができます。また、Color PickerのWebページにも、オンラインで試せるサンプルが10種類以上掲載されています。この記事でダウンロードできるデモは、ACTのColorPicker Extenderで実装したのと同様の機能を備えたものですが、次の点が異なります。

  • 色見本の部分には、TextBoxコントロールではなくLabelコントロールを使用しました
  • 選択した色の格納にTextBoxを使用しないことから、ポストバック時にクライアントからサーバに選択色を転送するために何らかの策が必要です。ここでは2つのHiddenFieldコントロールを使用しました

 このデモも、先ほどの例と同様に、前景色と背景色を選択するための2つのカラーピッカーを使用しています。

<asp:HiddenField runat="server" ID="fgColor" />
<asp:HiddenField runat="server" ID="bgColor" />
 
<p>
   Choose a background color:
   <asp:Label ID="lblBGColor" runat="server" Text=" " Width="35px" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px"></asp:Label>
 
   <obout:ColorPicker ID="cpBGColor" runat="server" TargetId="lblBGColor"
      PickButton="False" TargetProperty="style.backgroundColor" OnClientPicked="onBGColorPicked">
   </obout:ColorPicker>
</p>
 
<p>
   Choose a foreground color:
   <asp:Label ID="lblFGColor" runat="server" Text=" " Width="35px" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px"></asp:Label>
 
   <obout:ColorPicker ID="cpFGColor" runat="server" TargetId="lblFGColor"
      PickButton="False" TargetProperty="style.backgroundColor" OnClientPicked="onFGColorPicked">
   </obout:ColorPicker>
</p> 

 oboutのColor Pickerコントロールでは、選択色を表示するコントロールを指定できます。この例では、前景色と背景色のそれぞれに対応するLabelコントロールを指定しています。また、選択色に設定するクライアント側プロパティも指定できます。この既定値はvalueですので、TextBoxコントロールとの組み合わせで使用した場合なら、ACTのColorPicker Extenderと同様に、TextBoxのテキストに選択色が設定されることになります。しかしこの例の場合は、Labelの背景色を選択色に設定する必要があるため、TargetPropertystyle.backgroundColorにします。

 上記のコードの冒頭には、HiddenFieldコントロールが2つあります。ポストバック時にユーザーの選択色をサーバに転送するために使用するコントロールです。両コントロールの値は、ユーザーが色を選択するたびに設定します。色の選択時にJavaScript関数を実行するには、Color PickerコントロールのOnClientPickedプロパティを使用します。この例では、onBGColorPickedonFGColorPickedという2つのJavaScript関数を作成しました。それぞれ、選択色を適切なHiddenField値に設定する関数です。下記のコードにもあるように、選択色を表す16進数文字列は、sender.getColor()というJavaScriptコードで取得できます。

<script type="text/javascript">
   function onBGColorPicked(sender) {
      var hiddenField = document.getElementById('<%=bgColor.ClientID %>');
      hiddenField.value = sender.getColor();
   }
 
   function onFGColorPicked(sender) {
      var hiddenField = document.getElementById('<%=fgColor.ClientID %>');
      hiddenField.value = sender.getColor();
   }
</script> 

 次のスクリーンショットは、oboutのColor Pickerコントロールの実際の使用例です。パレットでの色の選択肢がACTのColorPickerよりも多いのが分かります。また、oboutのColor Pickerコントロールでは、定義済みの色をパレットに表示したり、定義済みの色以外は選択できないように制限することも可能です。

 それでは、ハッピープログラミング!

参考資料

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

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

Scott Mitchell(Scott Mitchell)

http://www.4guysfromrolla.com/ScottMitchell.shtml

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4825 2010/02/16 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング