JavaScriptとTable要素を利用した、Webアプリケーションのサンプルです。
テーブルにフォーカスがある状態の時は、選択されているセルが、選択状態の色となります。
テーブルにフォーカスがある状態でEnterキーを押下すると、選択中のセルが編集可能となります。編集後再度Enterキーを押下すると、選択状態になります。編集可能状態でEscキーを押下すると、編集内容を破棄して、選択状態に戻ります。
テーブル間のフォーカス移動は、マウスでテーブルをクリックするか、Tabキーにより行います。
スタンダードな実装です。機能的には、簡単な計算処理と、編集不可のセルが選択できないように、スキップする処理が実装されています。
単価か個数を変更すると、合計と一番下の総合計が自動的に計算されます。また、日付と金額については、編集時と表示時でフォーマットを変更しています。
テーブルの内容に関しては、特に意味はないので、つっこみは無しにしてください。「あっ、商品名がないや。」と、作ってから思いましたから(^^;
項番 | 日 付 | 単価 | 個数 | 合 計 | 備 考 |
---|---|---|---|---|---|
少しだけ、上級編です。1つのモデル(データ)を、複数のビューで共有して表示するパターンです。行数はそれほどではないがやたらに横に長い表を、いくつかに分けて表示したりできます。
やっていることは大したことではありません。モデルにモデルと同じインターフェイスのフィルターをかぶせて、そのフィルターの中でgetValue()等の列数を変更しているだけです。
2つのビューで、1つのモデルを共有しているので、上の表の商品名を変更すると、下の表の商品名も同時に変更されます。
また、フォーカスがある状態で、上下の矢印キーで選択行を変更すると、両方のテーブルで同じように選択行が変更されます。
上下のテーブルのフォーカスは、マウスでテーブルをクリックするか、Tab/Shift+Tabキーで移動することができます。
伝票番号 | 商品名 | 日 付 | 単価 | 個数 | 合 計 |
---|---|---|---|---|---|
伝票番号 | 商品名 | 発送予定日 | 発送完了日 | 発送先番号 | 備 考 |
---|---|---|---|---|---|
これは、「1つのモデルで、2つのビュー」のバリエーションです。
実際のアプリケーションでは、このパターンの方が使用頻度は多いかもしれません。
上のテーブルにフォーカスがある状態で、上下の矢印キーにより選択する行を変更すると、下のテーブルの表示内容が変化します。
下のテーブルにフォーカスがある状態では、矢印キーにより入力可能な項目を選択することができます。
上下のテーブルのフォーカスは、マウスでテーブルをクリックするか、Tab/Shift+Tabキーで移動することができます。
会員番号 | 氏名(漢字) | 氏名(カナ) |
---|---|---|
会員コード | ||||||||||||||||||||||||||||||
姓(漢字) | 名(漢字) | |||||||||||||||||||||||||||||
姓(カナ) | 名(カナ) | |||||||||||||||||||||||||||||
メールアドレス | ||||||||||||||||||||||||||||||
現在ポイント | ポイント総計 | 信用度 | ||||||||||||||||||||||||||||
男女区分 | 入会年月日 | 退会年月日 | ||||||||||||||||||||||||||||
休止区分 | 休止開始年月日 | 休止終了年月日 | ||||||||||||||||||||||||||||
郵便番号 | ||||||||||||||||||||||||||||||
住所1 | ||||||||||||||||||||||||||||||
住所2 |