【操作】固定列の設定を行った場合、OperationMode に SingleSelect や RowMode を設定すると上下矢印キーで行選択が移動しない
対象製品
SPREAD for .NET 2.5J Web Forms Edition
発生環境
動作保証環境と同様
状況
修正済み
詳細
固定列の設定を行った場合、操作モード(OperationMode)の設定を単一選択モード(SingleSelect)、または、行モード(RowMode)を設定すると上下矢印キーで行選択が移動しません。
【再現手順】
1.新規WebフォームにSPREADを配置します
2.下記のサンプルコードをコピーします
3.SPREADの任意のセルをクリックします
4.上下矢印キーを押下しても行選択は移動しません
【サンプルコード】
-------------------------
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 = 30
FpSpread1.ActiveSheetView.ColumnCount = 30
FpSpread1.ActiveSheetView.FrozenColumnCount = 5
FpSpread1.ActiveSheetView.AllowPage = False
'FpSpread1.ActiveSheetView.OperationMode = FarPoint.Web.Spread.OperationMode.SingleSelect
FpSpread1.ActiveSheetView.OperationMode = FarPoint.Web.Spread.OperationMode.RowMode
End Sub
【再現手順】
1.新規WebフォームにSPREADを配置します
2.下記のサンプルコードをコピーします
3.SPREADの任意のセルをクリックします
4.上下矢印キーを押下しても行選択は移動しません
【サンプルコード】
-------------------------
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 = 30
FpSpread1.ActiveSheetView.ColumnCount = 30
FpSpread1.ActiveSheetView.FrozenColumnCount = 5
FpSpread1.ActiveSheetView.AllowPage = False
'FpSpread1.ActiveSheetView.OperationMode = FarPoint.Web.Spread.OperationMode.SingleSelect
FpSpread1.ActiveSheetView.OperationMode = FarPoint.Web.Spread.OperationMode.RowMode
End Sub
回避方法
2007/09/05版で修正済み。
2007/09/05版より前のバージョンでは次の回避方法が有効です。
クライアント側スクリプトを使用して明示的にアクティブセルを設定します。
【サンプルコード】
------------------------------------
クライアント側スクリプト
------------------------------------
<script language="javascript">
function window.onload()
{
var spread = document.all("FpSpread1");
spread.onActiveCellChanging = cellChanging;
}
function cellChanging()
{
var spread = document.all("FpSpread1");
if(spread.ActiveRow == -1)
{
event.cancel=true;
spread.SetActiveCell(event.row,event.col);
}
}
</script>
2007/09/05版より前のバージョンでは次の回避方法が有効です。
クライアント側スクリプトを使用して明示的にアクティブセルを設定します。
【サンプルコード】
------------------------------------
クライアント側スクリプト
------------------------------------
<script language="javascript">
function window.onload()
{
var spread = document.all("FpSpread1");
spread.onActiveCellChanging = cellChanging;
}
function cellChanging()
{
var spread = document.all("FpSpread1");
if(spread.ActiveRow == -1)
{
event.cancel=true;
spread.SetActiveCell(event.row,event.col);
}
}
</script>
キーワード
SPRN06271
この文書は、以前は次のバグレポートIDで公開されていました : 7070