作成日: 2024/06/25 最終更新日: 2025/12/24
文書種別
不具合
状況
修正済み
詳細
編集コントロールがあるAJAX Control Toolkitのセル型で、セルの編集時に左右矢印キーを押下すると、アクティブセルが隣の列に移動してしまいキャレットが文字間で正しく移動しません。
本現象はAJAX Control Toolkitを使用した以下のセル型で発生します。
- Ajaxコンボボックス型セル
- オートコンプリート型セル
- カレンダー型セル
- マスク編集型セル
- 数値スピン型セル
- ウォーターマーク型セル
回避方法
Service Pack 10(v10.0.4015.2013)で修正済み。
Service Pack 10を適用しない場合は、クライアント側のスクリプトを記述する*.aspxファイルで、AJAX Control Toolkitのセル型に左右矢印キーのバブルアップを抑制することで回避できます。
<script>
document.onreadystatechange = function () {
if (document.readyState == "complete") {
var spread = document.getElementById('FpSpread1');
if (spread != null && $$.browser.chrome) {
spread.addEventListener("keydown", SpreadOnKeydown, false);
}
}
}
function SpreadOnKeydown(event) {
var spread = document.getElementById('FpSpread1');
if (spread != null) {
var left = 37;
var right = 39;
switch (event.keyCode) {
case left:
case right:
var activeCell = spread.Cells(spread.ActiveRow, spread.ActiveCol);
var editor = spread.getEditor(activeCell);
var isExtenderEditor = (editor && editor.getAttribute("FpEditor") == "ExtenderEditor");
if (isExtenderEditor) {
var extenders = editor.getAttribute("Extenders");
if (extenders && (
extenders.indexOf("FpComboBox") != -1
|| extenders.indexOf("AutoCompleteExtender") != -1
|| extenders.indexOf("CalendarExtender") != -1
|| extenders.indexOf("MaskedEditExtender") != -1
|| extenders.indexOf("NumericUpDownExtender") != -1
|| extenders.indexOf("TextBoxWatermarkExtender") != -1)) {
event.cancelBubble = true;
}
}
break;
}
}
}
</script>