SPREAD for ASP.NET 10.0J パフォーマンスガイドライン > 高速化のための10のTips > 出力されるHTMLのデータ量を減らす方法 > 5. 広範囲に対してセル型の設定を行う |
以下のセル型を使用していて、ページング時に極端にレスポンスが低下する場合は広範囲に対してセル型の設定を行うことで改善できる場合があります。この改善は、通貨型セル、日付型セル、倍精度型セル、標準型セル、整数型セル、パーセント型セル、マスク型セル、テキスト型セル(ShowEditor = Falseの場合)、コンボボックス型セル(ShowButton = Falseの場合)に有効です。
製品ではセル型のインスタンスごとにコントロールをHTMLへ生成する仕様になっています。初回表示時は同じインスタンスのセル型を設定している複数のセルで1つのコントロールを共有しますが、ポストバック(コールバック)後は、初回表示時に生成したインスタンスが削除されるため、個々のセルが独立しており、コントロールがセルの数だけページ上に生成されます。そのため、セル単位でセル型の設定をしていると出力されるHTMLのファイルサイズが増加して、レスポンスが低下することがあります。
例)2×2のセルにTextCellTypeを設定した場合
初回表示時 :テキストボックスを1つページに出力
ページング時:テキストボックスを4つページに出力
セル単位にセル型を設定するのではなく、行単位や列単位でより広範囲に設定する方法が考えられます。また、属性を定義した名前付きスタイルオブジェクトを作成し複数のセルに対して設定を行います。
// セル単位にセル型を設定 FarPoint.Web.Spread.TextCellType txt = new FarPoint.Web.Spread.TextCellType(); for( int i = 0; i < FpSpread1.ActiveSheetView.RowCount; i++) { FpSpread1.ActiveSheetView.Cells[i, 1].CellType = txt; }
' セル単位にセル型を設定 Dim txt As New FarPoint.Web.Spread.TextCellType() For i As Integer = 0 To FpSpread1.ActiveSheetView.RowCount - 1 FpSpread1.ActiveSheetView.Cells(i, 1).CellType = txt Next
// 列単位にセル型を設定 FarPoint.Web.Spread.TextCellType() txtcol = new FarPoint.Web.Spread.TextCellType(); FpSpread1.ActiveSheetView.Columns[1].CellType = txtcol; // 名前付きスタイルの生成 FarPoint.Web.Spread.NamedStyle textstyle = new FarPoint.Web.Spread.NamedStyle("MyText"); textstyle.CellType = new FarPoint.Web.Spread.TextCellType(); FpSpread1.NamedStyles.Add(textstyle); for( int i = 0; i < FpSpread1.ActiveSheetView.RowCount; i++) { FpSpread1.ActiveSheetView.Cells[i, 1].StyleName = "MyText"; }
' 列単位にセル型を設定(ページに出力されるコントロール数:少) Dim txtcol = New FarPoint.Web.Spread.TextCellType() FpSpread1.ActiveSheetView.Columns(1).CellType = txtcol ' 名前付きスタイルの生成(ページに出力されるコントロール数:少) Dim textstyle As New FarPoint.Web.Spread.NamedStyle("MyText") textstyle.CellType = New FarPoint.Web.Spread.TextCellType FpSpread1.NamedStyles.Add(textstyle) For i As Integer = 0 To FpSpread1.ActiveSheetView.RowCount - 1 FpSpread1.ActiveSheetView.Cells(i, 1).StyleName = "MyText" Next
※ これらの方法を適用しても初回表示時のページサイズは削減できません。