# Tabular

**コントロール機能**：データを表形式で表示するためのコントロールです。行選択、チェックボックスの状態変化イベント、動的コンテンツ展開などの機能をサポートしており、データリストの表示およびインタラクションに適しています。  
**タイプ**：通常コントロール（コンテナ型データ表示コントロール）  
**親クラスコントロール**：`bricks.DataViewer`

## 初期化パラメータ

- `opts` {Object}：初期化オプションオブジェクト。`DataViewer`のパラメータを継承し、以下の固有プロパティを追加拡張します：
  - `row_options` {Object}：各行データのレンダリング設定を定義。フィールド（`fields`）、高さ（`cheight`）などを含みます。
  - `content_view` {Object|undefined}：（任意）行クリック時に展開される詳細コンテンツビューの定義（JSON構造）。指定されている場合、折りたたみパネル機能が有効になります。
  - `editexclouded` {Array}：（任意）編集モードで表示しないフィールド名の配列。
  - `data_params` {Object}：非表示フィールド生成用のデータパラメータ。フォーム送信などの場面で使用されます。

## 主なイベント

- `row_selected`  
  **発火タイミング**：行がクリックされ選択されたときに発火します。  
  **渡されるパラメータ**：現在選択された行に対応するデータレコード（`record` オブジェクト）。  
  **例**：詳細パネルの更新や外部コントロールの状態変更に利用できます。

- `row_check_changed`  
  **発火タイミング**：行のチェックボックスの状態が変化したときに発火します。  
  **渡されるパラメータ**：該当行に対応するユーザー定義データ（`user_data`）。  
  **注意**：`DataRow` の `check_changed` イベントをバインドすることで発生します。主に複数選択操作の処理に使用されます。

- カスタムイベント転送（`record_event_handle` 経由）  
  子コンポーネント（ツールバーのボタンなど）のイベントを親レベルへバブリング可能。例えば：
  - `click`、`dblclick` などのDOMイベントをカプセル化したカスタムイベント。
  - 元のレコードデータを付随させることで、ビジネスロジックでの対応が容易になります。