Распространение.NET и JavaScript

Я пытаюсь добавить функцию удержания нажатой клавиши Shift, чтобы выбрать диапазон ячеек (именно то, что делает спред в winforms по умолчанию).
То, что я пытаюсь сделать, это распознать, когда впервые нажата клавиша Shift, когда компонент распространения находится в фокусе, и сохранить координаты ячейки в скрытых входах.

По какой-то причине я не могу получить значение из ActiveCol или ActiveRow. Они возвращаются неопределенными. Я попытался предварительно установить активную ячейку с кодом, но он все еще возвращает неопределенное значение.

Я также проверяю значение 'ss', и оно возвращает элемент.

        function shiftCheckDown(event)
        {
            var ss = document.getElementById('<%=FpSpread1.ClientID %>');

            //ss.SetActiveCell(0,3);

            if (ss != null) {

                var col = ss.ActiveCol;
                var row = ss.ActiveRow;
  //var col = FpSpread1.ActiveCol;
  //var row = FpSpread1.ActiveRow;


                if (event.keyCode == 16) {

                        alert(row);

                        document.getElementById('RowCoord').value = row;
                        document.getElementById('ColCoord').value = col;
                }           
            }
        } 

Я использую onkeydown для вызова функции.

<FarPoint:FpSpread onkeydown="shiftCheckDown(event)" ID="FpSpread1" runat="server" ActiveSheetViewIndex="0" . . .  

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

2 ответа

Решение

ActiveCol а также ActiveRow работает только в IE

Для Firefox и других браузеров вам необходимо использовать GetActiveRow а также GetActiveCol

            var col = ss.ActiveCol;
            var row = ss.ActiveRow;

            if (col == undefined) {
                var col = ss.GetActiveCol;
                var row = ss.GetActiveRow;
            }

На самом деле это так:

col = ss.GetActiveCol();
row = ss.GetActiveRow();
Другие вопросы по тегам