【クライアント】セルを結合すると、クライアントで編集したセルの位置がずれる場合がある
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様
状況
修正済み
詳細
セルを結合すると、クライアントで編集したセルの位置がポストバック後にずれる、クライアントスクリプトでアクティブセルのインデックスが正しく取得できないなどの現象が発生する場合があります。
【手順】
1.新規WebフォームにSPREADとTextBoxを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.G3セルをクリックするとテキストボックスに「Cell(2,5)」と表示されます(正しくは「Cell(2,6)」)
4.G3セルに「a」と入力し、コマンドバーの更新ボタンを押下します
5.G3セルが未入力の状態となり、F3セルに「a」が設定されます
【サンプルコード】
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack Then
Return
End If
FpSpread1.ActiveSheetView.RowCount = 3
FpSpread1.ActiveSheetView.ColumnCount = 7
FpSpread1.ActiveSheetView.Cells(1, 0).ColumnSpan = 3
FpSpread1.ActiveSheetView.Cells(1, 0).RowSpan = 2
FpSpread1.ActiveSheetView.Cells(1, 3).ColumnSpan = 2
FpSpread1.ActiveSheetView.Cells(2, 3).ColumnSpan = 2
End Sub
-------------------------
クライアントスクリプト
-------------------------
<script type="text/javascript">
function window.onload()
{
var spread = document.getElementById("FpSpread1");
spread.onActiveCellChanged = ac;
}
function ac()
{
var spread = document.getElementById("FpSpread1");
var tx1 = document.getElementById("TextBox1");
tx1.value = "Cell(" + spread.ActiveRow + "," + spread.ActiveCol + ")";
}
</script>
【手順】
1.新規WebフォームにSPREADとTextBoxを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.G3セルをクリックするとテキストボックスに「Cell(2,5)」と表示されます(正しくは「Cell(2,6)」)
4.G3セルに「a」と入力し、コマンドバーの更新ボタンを押下します
5.G3セルが未入力の状態となり、F3セルに「a」が設定されます
【サンプルコード】
-------------------------
Webフォームクラス
-------------------------
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack Then
Return
End If
FpSpread1.ActiveSheetView.RowCount = 3
FpSpread1.ActiveSheetView.ColumnCount = 7
FpSpread1.ActiveSheetView.Cells(1, 0).ColumnSpan = 3
FpSpread1.ActiveSheetView.Cells(1, 0).RowSpan = 2
FpSpread1.ActiveSheetView.Cells(1, 3).ColumnSpan = 2
FpSpread1.ActiveSheetView.Cells(2, 3).ColumnSpan = 2
End Sub
-------------------------
クライアントスクリプト
-------------------------
<script type="text/javascript">
function window.onload()
{
var spread = document.getElementById("FpSpread1");
spread.onActiveCellChanged = ac;
}
function ac()
{
var spread = document.getElementById("FpSpread1");
var tx1 = document.getElementById("TextBox1");
tx1.value = "Cell(" + spread.ActiveRow + "," + spread.ActiveCol + ")";
}
</script>
回避方法
2008/08/27版で修正済み。
キーワード
SPRN06776
この文書は、以前は次のバグレポートIDで公開されていました : 7493