0

我有一个我正在处理的数据网格控件,它总共使用 4 个表来生成固定列标题、列标题、固定单元格和单元格(左上角、右上角、左下角、右下角,底部滚动垂直滚动,右边水平滚动)。某些表格之间的对齐方式(在这种情况下,固定单元格 [垂直] 和非固定列标题 [水平])必须与滚动时的表格同步,并且标题宽度是根据表格中的隐藏标题计算的数据。即使对于非常大(100k+ 行)的数据集,这也很有效——除非最初加载。该表是动态生成的(通过 AJAX 回调),我正在寻找一种方法,

TL;DR:需要一个事件或一些技巧,以便我在为通过 DOM 或 JQuery 调用动态创建的表呈现表的内容后调用函数(最好不要像 setTimeout 调用那样一起破解)。

4

1 回答 1

0

必须通过创建一个 setTimeout 来解决这个问题,该 setTimeout 调用一个重复检查大小变化的函数,如下所示(排除了一些不直接相关的代码):

function Datagrid() {
    var _this = this; setTimeout(function () { _this.CheckAutoColumns(); }, 20);
}
function Datagrid_CheckAutoColumns() {
    if (this != null) {
        var render = false;
        for (var i = 0; i < this.Columns.length; i++) {
            if (this.Columns[i].__LastWidth != this.Columns[i].Container.width()) {
                render = true;
                break;
            }
        }
        if (render == true) { this.Render(); }
        if (this.Disposing === false) { var _this = this; setTimeout(function () { _this.CheckAutoColumns(); }, 20); }
    }
}
Datagrid.prototype.constructor = Datagrid;
Datagrid.prototype.CheckAutoColumns = Datagrid_CheckAutoColumns;
于 2013-01-23T13:53:52.157 回答