我正在使用telerik控件开发一个具有类似excel功能的网格.例如,用户可以单击一个单元格,单元格将变为输入控件以进行编辑.用户可以使用Tab键移动到下一个单元格或使用向上/向下箭头键来获取上方或下方的单元格.我发现标准的telerik网格很好,但我不得不用自定义的javascript扩展它来实现我的需要.
我的问题是在IE浏览器中的性能.虽然Firefox,Chrome,Safari都很好,但IE真的很痛苦.IE8比IE7要好得多,但是用光标键移动有点不自然,没有像Chrome或FF那样流畅.
由于网格的复杂性,我无法真正发布示例代码,但通常我会显示标准的telerik网格并使用telerik javascript API在浏览器中填充和绑定.当单击一个单元格时,javascript函数会将先前隐藏的输入控件从隐藏的集合移动到单元格中并使其聚焦.当您选中标签时,清除单元格值并使用ajax页面方法更新服务器,并以类似方式选择下一个单元格.
网格有大约40列和20行,即页面上隐藏了800个额外控件,只能通过单击单元格或通过键盘导航来激活.我原来每个列只有一个隐藏控件,但是使用光标键上下移动在IE中变得有问题.
任何有关检查可能加速IE8的事情的建议都将非常感激.
//selects a cell and sets the value
this.select = function(value) {
this.moveFromTo(this._hiddenCell, this._gridCell);
this._bIsSelected = true;
this.set_inputValue(value);
this._focus();
}
//clears inner content for a cell
this.removeChildrenFromNode = function(node) {
if (node == undefined || node == null) {
return;
}
var len = node.childNodes.length;
while (node.hasChildNodes()) {
node.removeChild(node.firstChild);
}
}
//move back or forwards between hidden or active cell
this.moveFromTo = function(from, to) {
var currChild = null;
this.removeChildrenFromNode(to);
var i = 0; …Run Code Online (Sandbox Code Playgroud)