Распространение.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();