PowerTools SPREAD for ASP.NET 8.0J > 開発者の手引き > セル型 > グラフィカルなセル型 > マルチカラムコンボボックス型セル |
マルチコンボボックス型セルは、コンボボックス型セルと同様に選択項目を示すドロップダウンリストを表示し、ユーザーは任意の項目を選択できます。ただし、マルチコンボボックス型セルは、ドロップダウンリストを複数列で表示します。
このセル型の作成や設定は、MultiColumnComboBoxCellType クラスを使用して行われます。
マルチコンボボックス型セルのドロップダウンリストの項目を設定するには、セルをデータソースに連結する必要があります。データソースに連結するには、以下のプロパティを使用します。
複数列のうち、どの列を編集対象(セルに表示)するかは、ColumnEdit プロパティまたはColumnEditName プロパティを使用して設定します。どの列をセルのValue プロパティとして取得できる値とするかは、DataColumn プロパティまたはDataColumnName プロパティで指定します。
また、リストボックスの表示位置やサイズ、各列の幅も設定可能で、以下のプロパティを使用します。
次のサンプルコードは、マルチカラムコンボボックス型セルを表示します。
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { return; } FarPoint.Web.Spread.MultiColumnComboBoxCellType mcombo = new FarPoint.Web.Spread.MultiColumnComboBoxCellType(); mcombo.DataSource = CreateDataSource(); mcombo.DataColumnName = "No"; mcombo.ColumnEditName = "Item1"; mcombo.ShowButton = true; mcombo.ListWidth = 250; mcombo.UseValue = true; FpSpread1.Sheets[0].Columns[0].CellType = mcombo; } public System.Data.DataSet CreateDataSource() { System.Data.DataSet ds = new System.Data.DataSet(); System.Data.DataTable dt = null; System.Data.DataRow dr = null; int i = 0; dt = new System.Data.DataTable(); dt.Columns.Add(new System.Data.DataColumn("No", typeof(int))); dt.Columns.Add(new System.Data.DataColumn("Item1", typeof(string))); for (i = 1; i <= 5; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Item" + i.ToString(); dt.Rows.Add(dr); } ds.Tables.Add(dt); return ds; }
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If IsPostBack Then Return End If Dim mcombo As New FarPoint.Web.Spread.MultiColumnComboBoxCellType() mcombo.DataSource = CreateDataSource() mcombo.DataColumnName = "No" mcombo.ColumnEditName = "Item1" mcombo.ShowButton = True mcombo.ListWidth = 250 mcombo.UseValue = True FpSpread1.Sheets(0).Columns(0).CellType = mcombo End Sub Function CreateDataSource() As Data.DataSet Dim ds As New Data.DataSet Dim dt As Data.DataTable Dim dr As Data.DataRow Dim i As Integer dt = New Data.DataTable dt.Columns.Add(New Data.DataColumn("No", GetType(Integer))) dt.Columns.Add(New Data.DataColumn("Item1", GetType(String))) For i = 1 To 5 dr = dt.NewRow() dr(0) = i dr(1) = "Item" + i.ToString() dt.Rows.Add(dr) Next ds.Tables.Add(dt) Return ds End Function