作成日: 2024/06/25 最終更新日: 2024/06/25
文書種別
不具合
状況
回避方法あり
詳細
編集コントロールがあるAJAX Control Toolkitのセル型で、セルの編集時に左右矢印キーを押下すると、アクティブセルが隣の列に移動してしまいキャレットが文字間で正しく移動しません。
本現象はAJAX Control Toolkitを使用した以下のセル型で発生します。
本現象はAJAX Control Toolkitを使用した以下のセル型で発生します。
- Ajaxコンボボックス型セル
- オートコンプリート型セル
- カレンダー型セル
- マスク編集型セル
- 数値スピン型セル
- ウォーターマーク型セル
回避方法
クライアント側のスクリプトを記述する*.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>