MESCIUS SPREAD for ASP.NET 10.0J > 開発者の手引き > セル型 > グラフィカルなセル型 > コンボボックス型セル |
コンボボックス型セルは、選択項目を示すドロップダウンリストを表示します。ユーザーは、ドロップダウンリストから任意の項目を選択できます。
このセル型の作成や設定は、ComboBoxCellType クラスを使用して行われます。
AutoPostBack プロパティをtrueに設定すると、ドロップダウンリストから項目を選択するとサーバー側にポストバックされ、FpSpread クラスのButtonCommand イベントが発生します。クライアント側でイベントをハンドルするには、ComboBoxCellType クラスのOnClientChanged プロパティを使用します。
セルが編集モードのときに、ドロップダウンリストを開くためのボタンが表示されますが、常にドロップダウンボタンを表示するには、ShowButton プロパティをtrueに設定します。
ドロップダウンリストに表示される項目を設定するには、以下の2通りの方法があります。
ComboBoxCellType クラスのItems プロパティまたはListItems プロパティに項目の配列を設定します。Items プロパティはリストに表示される文字列でString型の配列を設定しますが、これはセルのText プロパティに該当します。項目を選択したときに取得される値(Value プロパティ)は、Values プロパティに配列として設定します。ListItems プロパティはListItem型の配列を参照します。
ComboBoxCellType クラスの以下の各プロパティを使用して、データソースに連結します。
ドロップダウンリストの項目を、配列の設定により追加するには、次のように設定します。
ドロップダウンリストの項目を、データソースに連結することで追加するには、次のように設定します。
次のサンプルコードは、ドロップダウンリストの項目を配列により設定したコンボボックス型セルの設定例です。
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