2011年9月24日土曜日

◆オートコンプリートボックス(コンボボックス)を使う

LightSwitchでは通常のコンボボックスの代わりにオートコンプリートボックスというのを使うようだ。
この使い方を少し調べてみる。

まずは簡単なサンプルを作る。
新規にプロジェクトを作成して、デザイナー画面で「外部データソースにアタッチ」をクリックする。
image

「データベース」を選択
image

サーバーに「.\sqlexpress」を選択し、データベースに「Northwind」を選択。
image

テーブル一覧から「Orders」と「Order_Details」を選択。
image

追加したテーブルをもとに画面を作成するためにデザイナー画面上部のツールバーから「画面」をクリック。
image

表示されたダイアログ画面で以下のように設定し「OK」ボタンをクリックする。
 画面テンプレート:新規データ画面
 画面名:CreadteNewOrder
 画面データ:OrdersItem
 含める追加データ:OrdersItem詳細、OrdersItem OrderDetails
image

以上でとりあえず準備は完了ということで、F5キーを押して実行てみよう。
こんな画面が表示されるはずだ。
2011-09-24 00h30_12

ここからが本題だが、画面を見てみると先頭に「CustomerID」というのがある。
通常このようなIDは選択ボックスから名称で選択して入力するのが普通だ。
そこで、こいつを選択ボックスに変えてみよう。

これまでのVisualStudioのパターンであれば、コントロールをコンボボックスに変更してデータソースを定義し、ValueメンバーにIDを、Displayメンバーに名称を指定なんて作業が必要だったがLightSwitchの場合は以下のような作業になる。

    1. 「ソリューションエクスプローラー」で「NorthwindData」データソースを右クリックし「データソースの更新」を選択。
      image
    2. 表示されたテーブル一覧から「Customers」を選択して「完了」ボタンをクリック。
      image
    3. デザイナー画面に戻るので「プロパティ」ウインドウにて「概要プロパティ」に「CompanyName」を指定する。
      image

      ちなみに、「Orders」テーブルを見てみると「CustomerID」が消えて「Customer」テーブルへの参照である「CustomerItem」が追加されている。
      image
    4. 「ソリューションエクスプローラー」にて画面名をダブルクリックしてデザイナーを表示。
      image
    5. 「行のレイアウト left」を選択し、表示された「追加」ボタンをクリックし「Customers Item」をクリックする。
      2011-09-24 01h19_05
    6. 「Customers Item」が追加されるので任意の場所にドラッグして場所を決めた後、「プロパティ」ウインドウで「表示名」を「CustomerName」に変更する。
      image
    7. F5キーで実行し「CustomerName」をドロップダウンすると「Customer」の一覧が表示される。
      最初に書いたように、これは「オートコンプリートボックス」というコントロールになっていてキー入力に応じて候補を絞り込むことができる。
      2011-09-24 01h25_50

      image

とりあえず、オートコンプリートボックスでの選択候補の追加は以上のような感じだ。
予め選択候補を絞り込んだりする方法は次回・・・。

0 件のコメント:

コメントを投稿