【クライアント】onActiveCellChanging イベントでアクティブセル移動をキャンセルした後、アクティブセルの移動が不正になる場合がある
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様
状況
修正済み
詳細
onActiveCellChanging イベントにて、[Tab]キーなどによるアクティブセルの移動をキャンセルした後、アクティブセルの移動が正しく行われません。
【手順】
1.新規WebフォームにSPREADのみを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.A1セルをクリックします
4.[Shift + Tab]キーを押下します
5.アクティブセルの移動がキャンセルされます
6.[Tab]キーを押下します
7.B3セルに移動します
【サンプルコード】
-------------------------
クライアント側スクリプト
-------------------------
<script type="text/javascript">
function window.onload()
{
var spread = document.getElementById("FpSpread1");
spread.onActiveCellChanging = ac;
}
function ac()
{
var s = event.spread;
if(s.ActiveCol == 0 && s.ActiveRow == 0 && event.col == s.GetColCount() - 1 && event.row == s.GetRowCount() - 1)
{
event.cancel = true;
}
}
</script>
【手順】
1.新規WebフォームにSPREADのみを配置します
2.下記サンプルコードをコピーし、アプリケーションを実行します
3.A1セルをクリックします
4.[Shift + Tab]キーを押下します
5.アクティブセルの移動がキャンセルされます
6.[Tab]キーを押下します
7.B3セルに移動します
【サンプルコード】
-------------------------
クライアント側スクリプト
-------------------------
<script type="text/javascript">
function window.onload()
{
var spread = document.getElementById("FpSpread1");
spread.onActiveCellChanging = ac;
}
function ac()
{
var s = event.spread;
if(s.ActiveCol == 0 && s.ActiveRow == 0 && event.col == s.GetColCount() - 1 && event.row == s.GetRowCount() - 1)
{
event.cancel = true;
}
}
</script>
回避方法
2009/05/27版で修正済み。
2009/05/27版より前のバージョンでは次の回避方法が有効です。
アクティブセル移動のキャンセル後、明示的にアクティブセルの設定を行います。
【サンプルコード】
-------------------------
クライアント側スクリプト
-------------------------
<script type="text/javascript">
function window.onload()
{
var spread = document.getElementById("FpSpread1");
spread.onActiveCellChanging = ac;
}
function ac()
{
var s = event.spread;
if(s.ActiveCol == 0 && s.ActiveRow == 0 && event.col == s.GetColCount() - 1 && event.row == s.GetRowCount() - 1)
{
event.cancel = true;
s.SetActiveCell(0,0);
}
}
</script>
2009/05/27版より前のバージョンでは次の回避方法が有効です。
アクティブセル移動のキャンセル後、明示的にアクティブセルの設定を行います。
【サンプルコード】
-------------------------
クライアント側スクリプト
-------------------------
<script type="text/javascript">
function window.onload()
{
var spread = document.getElementById("FpSpread1");
spread.onActiveCellChanging = ac;
}
function ac()
{
var s = event.spread;
if(s.ActiveCol == 0 && s.ActiveRow == 0 && event.col == s.GetColCount() - 1 && event.row == s.GetRowCount() - 1)
{
event.cancel = true;
s.SetActiveCell(0,0);
}
}
</script>
キーワード
SPRN06916
この文書は、以前は次のバグレポートIDで公開されていました : 7918