gpt4 book ai didi

javascript - SetSelectedRange Spread.NET javascript 问题

转载 作者:行者123 更新时间:2023-11-30 18:18:43 24 4
gpt4 key购买 nike

我正在尝试向 Spread.NET 控件添加功能,它允许按住 Shift 键并单击以在 ASP 中选择一系列单元格。我正在创建事件 onActiveCellChanged 以在执行时调用 selectRange 函数

   var shiftPressed = false;
var newSelect = true;

window.pageLoad = function init() {
var ss = document.getElementById('<%=FpSpread1.ClientID %>');

if (ss.addEventListener != null) {
ss.addEventListener("ActiveCellChanged", selectRange(), false);
} else if (ss.attachEvent != null) {
ss.attachEvent("ActiveCellChanged", selectRange());
}
else {
FpSpread1.onActiveCellChanged = selectRange;
}
}

这里是 selectRange 函数。

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

if (shiftPressed == true) {
var initRow = document.getElementById('RowCoord').value;
var initCol = document.getElementById('ColCoord').value;
var SecRow = getRow();
var SecCol = getCol();
newSelect = false;

var rCount = Math.abs(SecRow - initRow) + 1;
var cCount = Math.abs(SecCol - initCol) + 1;

if (initRow > SecRow)
initRow = SecRow;

if (initCol > SecCol)
initCol = SecCol;

//alert(initRow + ' ' + initCol);
alert(initRow + ' ' + initCol + ' ' + rCount + ' ' + cCount);
ss.SetSelectedRange(initRow, initCol, rCount, cCount);

}
else {
document.getElementById('RowCoord').value = 0;
document.getElementById('ColCoord').value = 0;
newSelect = true;
}
}

这就是我确定是否正在举行轮类的方式。

        function aKeyDown(event) {

if (event.keyCode == 16) {

shiftPressed = true;
var col = getCol();
var row = getRow();

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

function aKeyUp(event) {

if (event.keyCode == 16) {
shiftPressed = false;
}
}

function getRow() {
var ss = document.getElementById('<%=FpSpread1.ClientID %>');
ret = ss.ActiveRow;

if (ret == undefined)
ret = ss.GetActiveRow;

return ret;
}

function getCol() {
var ss = document.getElementById('<%=FpSpread1.ClientID %>');
ret = ss.ActiveCol;

if (ret == undefined)
ret = ss.GetActiveCol;

return ret;
}

SetSelectedRange如果我的初始单元格是 a,1,则在选择范围函数中将起作用。但是,如果它是任何其他单元格,它将选择整行和整列。

这是我的 <div>标签:

<FarPoint:FpSpread onkeydown="aKeyDown(event)" onkeyup="aKeyUp(event)" ID="FpSpread1"...

在图 1 中,我的初始单元格是 (a,3),我按住 shift 键并单击 (b,4)

在图 2 中,它有效。只要我从单元格 (a,1) 开始

Image 1 Image 2

最佳答案

我需要解析行值和列值。

function getRow() {
var ss = document.getElementById(spd);
ret = ss.ActiveRow;

if (ret == undefined)
ret = ss.GetActiveRow();

return parseInt(ret);
}

function getCol() {
var ss = document.getElementById(spd);
ret = ss.ActiveCol;

if (ret == undefined)
ret = ss.GetActiveCol();

return parseInt(ret);
}

关于javascript - SetSelectedRange Spread.NET javascript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12649473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com