devlights
1/31/2013 - 10:43 AM

SPREAD for ASP.NET にて、CheckBoxCellType を設定して取得する方法。 セルの値を取得する前に明示的にFpSpread.SaveChanges()を呼ぶ必要がある。

SPREAD for ASP.NET にて、CheckBoxCellType を設定して取得する方法。 セルの値を取得する前に明示的にFpSpread.SaveChanges()を呼ぶ必要がある。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using FarPoint.Web.Spread;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                var sheet = spd.ActiveSheetView;

                sheet.ColumnCount = 2;
                sheet.RowCount = 5;

                for (var i = 0; i < sheet.RowCount; i++)
                {
                    var cellType = new CheckBoxCellType();
                    cellType.AutoPostBack = false;

                    sheet.Cells[i, 0].CellType = cellType;
                    sheet.Cells[i, 0].Value = 0;
                }
            }
        }

        protected void btn1_Click(object sender, EventArgs e)
        {
            // チェックボックスの値を取得する前に明示的にSaveChangesを呼ばないと駄目。
            // これを実行しないと、セルの値が常にnullになる。
            spd.SaveChanges();

            var sheet = spd.ActiveSheetView;
            for (var i = 0; i < sheet.RowCount; i++)
            {
                // チェックされていたら1, チェック無しの場合は0となる
                lst1.Items.Add(sheet.Cells[i, 0].Value.ToString());
            }
        }
    }
}