【セル型】 AjaxComboBoxCellType型セルを使用し、行数を0にした状態で行を追加するとエラーが発生する

文書番号 : 37708     文書種別 : 不具合     登録日 : 2014/12/17     最終更新日 : 2015/03/31
文書を印刷する
対象製品
SPREAD for ASP.NET 7.0J
状況
修正済み
詳細
AjaxComboBoxCellType型セルを使用し、行数を0にした状態で行を追加するとエラーが発生します。また、AjaxComboBoxCellType型セルに設定したドロップダウンリストが表示できません。

【再現コード】
------------------------------------
Webフォームクラス
------------------------------------
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
  If IsPostBack Then Return

  ' 行数の設定
  FpSpread1.ActiveSheetView.RowCount = 0

  ' セル型の設定
  Dim cmb As New FarPoint.Web.Spread.Extender.AjaxComboBoxCellType()
  cmb.DropDownStyle = AjaxControlToolkit.ComboBoxStyle.DropDownList
  cmb.AutoCompleteMode = AjaxControlToolkit.ComboBoxAutoCompleteMode.SuggestAppend
  cmb.DataSource = New String() {"A1", "B1", "C1"}
  FpSpread1.ActiveSheetView.Columns(0).CellType = cmb

  ' Buttonの設定
  Button1.OnClientClick = "InsertRow();return false;"
  Button1.UseSubmitBehavior = False
End Sub

------------------------------------
クライアント側スクリプト
------------------------------------
function InsertRow() {
  var spread = document.getElementById("FpSpread1");
  spread.Insert();
}

【再現手順】
1.新規Webフォーム上にSPREADとボタンコントロールを配置します
2.再現コードをコピーしプロジェクトを起動します
3.標準のボタンコントロールを押下し行を挿入します
 -- スクリプトエラーが発生します
回避方法
Service Pack 3(v7.0.4017.2010)で修正済み。
Service Pack 3(v7.0.4017.2010)より前のバージョンでは次の回避方法が有効です。
------------------------------------------

Webフォーム上に別のSPREADコントロールを配置し、CSSにより非表示にします。また、AjaxComboBoxCellTypeのアイテムをItemsプロパティにより追加します。

------------------------------------
Webフォームクラス
------------------------------------
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
  If IsPostBack Then Return

  ' 行数の設定
  FpSpread1.ActiveSheetView.RowCount = 0

  ' セル型の設定
  Dim cmb As New FarPoint.Web.Spread.Extender.AjaxComboBoxCellType()
  cmb.DropDownStyle = AjaxControlToolkit.ComboBoxStyle.DropDownList
  cmb.AutoCompleteMode = AjaxControlToolkit.ComboBoxAutoCompleteMode.SuggestAppend
  cmb.Items.Add("A1")
  cmb.Items.Add("B1")
  cmb.Items.Add("C1")
  FpSpread1.ActiveSheetView.Columns(0).CellType = cmb

  ' Buttonの設定
  Button1.OnClientClick = "InsertRow();return false;"
  Button1.UseSubmitBehavior = False

  ' 回避策(別のSPREADコントロールを追加)
  FpSpread2.ActiveSheetView.Columns(0).CellType = cmb
  FpSpread2.CssClass = "hideSpread"
End Sub

------------------------------------
スタイル
------------------------------------
<style type="text/css">
.hideSpread { display: none; }
</style>