コンボボックス型セルは、選択項目を示すドロップダウンリストを表示します。ユーザーは、ドロップダウンリストから任意の項目を選択できます。
このセル型の作成や設定は、ComboBoxCellType クラスを使用して行われます。

AutoPostBack プロパティをtrueに設定すると、ドロップダウンリストから項目を選択するとサーバー側にポストバックされ、FpSpread クラスのButtonCommand イベントが発生します。クライアント側でイベントをハンドルするには、ComboBoxCellType クラスのOnClientChanged プロパティを使用します。
セルが編集モードのときに、ドロップダウンリストを開くためのボタンが表示されますが、常にドロップダウンボタンを表示するには、ShowButton プロパティをtrueに設定します。
ドロップダウンリストに表示される項目を設定するには、以下の2通りの方法があります。
-
項目の配列を設定する
ComboBoxCellType クラスのItems プロパティまたはListItems プロパティに項目の配列を設定します。Items プロパティはリストに表示される文字列でString型の配列を設定しますが、これはセルのText プロパティに該当します。項目を選択したときに取得される値(Value プロパティ)は、Values プロパティに配列として設定します。ListItems プロパティはListItem型の配列を参照します。
-
データソースに連結する
ComboBoxCellType クラスの以下の各プロパティを使用して、データソースに連結します。
設定方法
ドロップダウンリストの項目を、配列の設定により追加するには、次のように設定します。
- ComboBoxCellType クラスのインスタンスを作成して、コンボボックス型セルを定義します。
- ドロップダウン項目として表示する、文字列型またはListItem 型の配列を作成します。
- 2. で作成した配列を、Items プロパティまたはListItems プロパティに設定します。
- その他、必要なプロパティを設定します。
- このセル型をセルに割り当てます。
ドロップダウンリストの項目を、データソースに連結することで追加するには、次のように設定します。
- ComboBoxCellType クラスのインスタンスを作成して、コンボボックス型セルを定義します。
- ドロップダウンリストのデータソースを作成します。
- データソースをDataSource プロパティまたはDataSourceID プロパティに設定します。
- DataTextFieldや、DataValueField プロパティに項目に表示される文字や、値に連結するデータフィールドを指定します。
- その他、必要なプロパティを指定します。
- このセル型をセルに割り当てます。
サンプルコード
次のサンプルコードは、ドロップダウンリストの項目を配列により設定したコンボボックス型セルの設定例です。
string[] itemArray = new String[] {"Jan", "Feb", "Mar", "Apr", "May", "Jun"};
string[] valueArray = new String[] {"1", "2", "3", "4", "5", "6"};
FarPoint.Web.Spread.ComboBoxCellType cmbbx = new FarPoint.Web.Spread.ComboBoxCellType();
cmbbx.Items = itemArray;
cmbbx.Values = valueArray;
FpSpread1.ActiveSheetView.Cells[0, 0].CellType = cmbbx;
Dim itemArray As New String() {"Jan", "Feb", "Mar", "Apr", "May", "Jun"}
Dim valueArray As New String() {"1", "2", "3", "4", "5", "6"}
Dim cmbbx As New FarPoint.Web.Spread.ComboBoxCellType()
cmbbx.Items = itemArray
cmbbx.Values = valueArray
FpSpread1.ActiveSheetView.Cells(0, 0).CellType = cmbbx
次のサンプルコードは、データテーブルと連結したコンボボックス型セルの設定例です。
System.Data.DataTable product = new System.Data.DataTable();
product.Columns.Add("ID", typeof(Int32));
product.Columns.Add("Product", typeof(string));
product.Rows.Add(new object[] { 0, "SPREAD" });
product.Rows.Add(new object[] { 1, "MultiRow" });
product.Rows.Add(new object[] { 2, "InputMan" });
product.Rows.Add(new object[] { 3, "ActiveReports" });
FarPoint.Web.Spread.ComboBoxCellType c = new FarPoint.Web.Spread.ComboBoxCellType();
c.DataSource = product;
c.DataTextField = "Product";
c.DataValueField = "ID";
FpSpread1.ActiveSheetView.Columns[0].CellType=c;
Dim product As New System.Data.DataTable
product.Columns.Add("ID", Type.GetType("SystemInt32"))
product.Columns.Add("Product", Type.GetType("System.String"))
product.Rows.Add(new object() { 0, "SPREAD" })
product.Rows.Add(new object() { 1, "MultiRow" })
product.Rows.Add(new object() { 2, "InputMan" })
product.Rows.Add(new object() { 3, "ActiveReports" })
Dim c As New FarPoint.Web.Spread.ComboBoxCellType
c.DataSource = product
c.DataTextField = "Product"
c.DataValueField = "ID"
FpSpread1.ActiveSheetView.Columns(0).CellType=c
関連トピック