没有找到现成的方法。希望能够同时具备operation mode = normal的编辑功能和extended select的多行选择功能。
asp.net 5.0版本.
不知道有没有现成的好方法。
现在我的做法是把表格设定为normal,然后手动模拟按ctrl多行选择的方式
代码如下
function init() {
multiSelectRowNum = new Array();
var spreadTest = FpSpread(spreadTestId);
if (spreadTest.addEventListener) {
spreadTest.addEventListener("ActiveCellChanged", activeCellChanged, false);
}
else
{
spreadTest.onActiveCellChanged = activeCellChanged;
}
}
Array.prototype.uniquePush = function (element) {
var isExisted = false;
for (var i = 0; i < multiSelectRowNum.length; i++) {
if (multiSelectRowNum == element) {
isExisted = true;
break;
}
}
if (isExisted == false) {
multiSelectRowNum.push(element);
}
}
function activeCellChanged(event) {
var spreadTest = FpSpread(spreadTestId);
spreadTest.ClearSelection();
multiSelectRowNum.uniquePush(spreadTest.ActiveRow);
if ((spreadTest.ActiveCol == 3) && (window.event.ctrlKey == true)) {
for (var i = 0; i < multiSelectRowNum.length; i++) {
spreadTest.AddSelection(multiSelectRowNum, 0, 1, spreadTest.GetColCount());
}
} else if ((spreadTest.ActiveCol == 3) && (window.event.ctrlKey == false)) {
multiSelectRowNum = new Array();
multiSelectRowNum.uniquePush(spreadTest.ActiveRow);
spreadTest.AddSelection(spreadTest.ActiveRow, 0, 1, spreadTest.GetColCount());
} else {
multiSelectRowNum = new Array();
}
}
就是手动维持一个选择多行的数组,然后按照数组中的值用addSelection来强行选择多行。
现在的问题是这样弄之后,后台取不到这个范围。
spreadObj.ActiveSheetView.SelectionModel中没有GetSelections方法。而且count为0,item为空。
请教怎么解决。或者有其他更好的方法。 |
|