MultiRowに応用する
MultiRowコンポーネントも、InputManのGcPostal相当のGcPostalCellと、GcPostalBarCodeと同等の機能を実現できるGcBarCodeCellを備えているため、同様の住所検索、郵便バーコード表示が可能です。
以下のサンプルでは郵便番号を入力すると、住所と住所のカナ表記、郵便バーコードが郵便番号に応じて変更されます。
サンプルの実装のポイントを紹介します。
GcBarCodeCellのTypeをJapanesePostalに
GcBarCodeCellは、郵便バーコード以外にもさまざまな形式に対応しているため、郵便バーコードを表示するということを指定する必要があります。
郵便バーコードに指定するには、GcBarCodeCellのTypeプロパティをJapanesePostalに設定します。
データはList型のコレクションで指定
前回の記事「Webアプリではまねできない、MultiRow&InputManを組み合わせた高機能入力フォーム」ではデータのソースにAccessのデータを利用しましたが、今回はList型のコレクションを指定しました。データはシンプルなプロパティを3つもったクラスです。
class AddressData { /** * 郵便番号 */ public string postal { get; set; } /** * 住所(漢字) */ public string address1 { get; set; } /** * 住所(カナ) */ public string address_kana { get; set; } }
データはGcMultiRowのDataSourceプロパティに以下のように指定します。
this.data = new List<AddressData>(); this.data.Add(new AddressData() { postal = "9200021", address1 = "石川県金沢市七ツ屋町", address_kana = "イシカワケンカナザワシナナツヤマチ" }); this.data.Add(new AddressData() { postal = "2140021", address1 = "神奈川県川崎市多摩区宿河原", address_kana = "カナガワケンカワサキシタマクシュクガワラ" }); this.gcMultiRow1.DataSource = data;
テンプレートのDataFieldに対応するプロパティを指定
GcMultiRowのどのセルにデータクラスの値を表示するかは、GcMultiRowのテンプレートのDataFieldプロパティに指定します。
下の画像は郵便番号を表示したいセルのDataFieldプロパティにデータクラスのpostalプロパティを指定したことをあらわします。
さらに詳しく実装を確認したい場合はサンプルコードを参照してください。
まとめ
JPAddressコンポーネントと他のコンポーネントの連携を紹介してきました。JPAddressを組み合わせることでアプリケーションの住所を扱う機能が改善されることが実感いただけたと思います。
アプリケーションの使われ方で、何度も住所入力を行うことが想定される場合は、ぜひJPAddressを用いることで効率を上げることができないか検討してみてください。