数据表在窗口调整大小时抛出错误

时间:2016-09-02 16:28:43

标签: jquery webforms datatables

我有一个DataTable。

当我设置它时,我没有错误,表格是正确生成的,但每当我调整窗口大小时,我都会收到此错误:

  

0x800a138f - JavaScript运行时错误:无法获取属性“样式”   未定义或空引用

我认为我不能在这里重现代码,但我可以保证表结构是正确的。

这就是我用来创建DataTable的原因:

function initDataTable() {
    if ($.fn.dataTable.isDataTable($('#grdPrincipal'))) {
        $('#grdPrincipal').DataTable().destroy();
        initDataTable();
    } else {
        $("#grdPrincipal")
            .DataTable({
                scrollY: 210,
                scrollX: true,
                fixedHeader: true,
                fixedColumns: true,
                paging: false,
                info: false,
                searching: false
            });
    }
}

由于我在我的asp.net webforms项目中使用UpdatePanel,因此每次执行回发时都必须运行此代码,因为每次都会重建表。

回发或其他任何问题都没有,正如我所说,唯一的问题是当我调整窗口大小时。

它可能是什么?

1 个答案:

答案 0 :(得分:1)

在更新updatePanel之前尝试销毁数据表,如下所示:

var prm = Sys.WebForms.PageRequestManager.getInstance();
    function BeginRequestHandler(sender, args) {
        //Runs before updatePanel starts updating
        $('#grdPrincipal').DataTable().destroy();
    }

    function EndRequestHandler(sender, args) {
        initDataTable();
        //Runs after updatePanel has finished updating
    }
    prm.add_beginRequest(BeginRequestHandler);
    prm.add_endRequest(EndRequestHandler);