【セル型】 AjaxComboBoxCellType型セルを使用し、行数を0にした状態で行を追加するとエラーが発生する
対象製品
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.標準のボタンコントロールを押下し行を挿入します
-- スクリプトエラーが発生します
【再現コード】
------------------------------------
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>
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>