PowerTools SPREAD for ASP.NET 8.0J
マルチカラムコンボボックス型セル

マルチコンボボックス型セルは、コンボボックス型セルと同様に選択項目を示すドロップダウンリストを表示し、ユーザーは任意の項目を選択できます。ただし、マルチコンボボックス型セルは、ドロップダウンリストを複数列で表示します。

このセル型の作成や設定は、MultiColumnComboBoxCellType クラスを使用して行われます。

マルチコンボボックス型セルのドロップダウンリストの項目を設定するには、セルをデータソースに連結する必要があります。データソースに連結するには、以下のプロパティを使用します。

複数列のうち、どの列を編集対象(セルに表示)するかは、ColumnEdit プロパティまたはColumnEditName プロパティを使用して設定します。どの列をセルのValue プロパティとして取得できる値とするかは、DataColumn プロパティまたはDataColumnName プロパティで指定します。

また、リストボックスの表示位置やサイズ、各列の幅も設定可能で、以下のプロパティを使用します。

設定方法

  1. MultiColumnComboBoxCellType クラスのインスタンスを作成し、マルチカラムコンボボックス型セルを定義します。
  2. 連結するデータソースを作成します。
  3. DataSource あるいはDataSourceID プロパティを使用してセルとデータソースを連結します。
  4. 表示する列および値として扱う列をを設定します。
  5. このセル型をセルに割り当てます。

サンプルコード

次のサンプルコードは、マルチカラムコンボボックス型セルを表示します。

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       
関連トピック

 

 


© 2003-2015, GrapeCity inc. All rights reserved.