JQuery:PageSlide + Slickgrid:消失的列

时间:2012-12-24 17:50:17

标签: javascript jquery slickgrid

我正在填充SlickGrid,然后使用PageSlide显示它。由于某些原因,这会导致某些列消失:JS Fiddle- Disappearing Columns

当我在没有PageSlide的情况下填充SlickGrid时,一切正常:JS Fiddle - Works without PageSlide

编辑:问题似乎是由于slickgrid(tab_container)的父div在页面滑动之前设置为display:none这一事实。有关解决方法的任何想法吗?

这是我的javascript代码,但我建议查看JS Fiddles,它们提供更多信息。

function TableGrid() {
    var dataView = new Slick.Data.DataView();
    var grid = {};
    var pager = {};
    var data = [];
    var colnames = [];
    var columns = [];
    var context = {};
    var raw_data = {};
    var options = {
        editable: false,
        enableAddRow: false,
        enableCellNavigation: true
    };


    this.dataView = dataView;
    this.data = data;

    var percentCompleteThreshold = 0;
    var prevPercentCompleteThreshold = 0;
    var h_runfilters = null;

    var buildColumns = function(raw_data) {
        colnames = raw_data[0];
        columns = [];
        for (var i = 0; i < colnames.length; i++) {
            columns.push({
                id: "col_" + i,
                name: colnames[i],
                field: colnames[i]
            });
        }
    };
    this.buildGrid = function(raw_data) {
        buildColumns(raw_data);
        fillGrid(raw_data);
        update(dataView);
    };
    var update = function(dataView) {
        dataView.beginUpdate();
        dataView.setItems(data);
        dataView.endUpdate();
    };
    this.update = update;



    var DataItem = function(row) {
        arguments.callee.counter = arguments.callee.counter || 0;
        this.id = "r_id_" + arguments.callee.counter;
        for (var i = 0; i < row.length; i++) {

            this[colnames[i]] = row[i];
        }
        arguments.callee.counter++;
    };


    var fillGrid = function(raw_data) {

        // prepare the data
        for (var i = 1; i < raw_data.length; i++) {
            row = raw_data[i];
            data[i - 1] = new DataItem(row);
            console.log(data[i - 1]);
        }
        console.log("preparing data view");
        grid = new Slick.Grid("#myGrid", dataView, columns, options);
        pager = new Slick.Controls.Pager(dataView, grid, $("#pager"));

        // wire up model events to drive the grid
        dataView.onRowCountChanged.subscribe(function(e, args) {
            grid.updateRowCount();
            grid.render();
        });

        dataView.onRowsChanged.subscribe(function(e, args) {
            grid.invalidateRows(args.rows);
            grid.render();
        });
        this.fillGrid = fillGrid;

        // initialize the model after all the events have been hooked up


    };

}

var rd = [["Date/Time", "Air Temp. (F°) ", "Dew Point Temp. (F°) ", "Sea Level Pressure (hPa) ", "Wind Direction (°) ", "Wind Speed Rate (mph) ", "Liquid Precipitation Depth Six Hr (\") ", "Precip. Depth (1 Hr) (\") "], ["12/01/2012 12:00 am", 42, "--", 1029.3, 40, 3.4, "--", "--"], ["12/01/2012 1:00 am", 40, "--", 1030.1, 20, 3.4, "--", "--"], ["12/01/2012 2:00 am", 39, "--", 1030.3, 30, 2.2, "--", "--"], ["12/01/2012 3:00 am", 37, "--", 1030.2, 50, 5.8, "--", "--"], ["12/01/2012 4:00 am", 38, "--", 1030.2, 70, 3.4, "--", "--"], ["12/01/2012 5:00 am", 39, "--", 1030.5, 80, 2.2, "--", "--"], ["12/01/2012 6:00 am", 40, "--", 1030.6, 60, 4.7, "--", "--"], ["12/01/2012 7:00 am", 40, "--", 1030.8, 60, 4.7, "--", "--"], ["12/01/2012 8:00 am", 40, "--", 1030.8, 40, 5.8, "--", "--"], ["12/01/2012 9:00 am", 38, "--", 1030.9, 60, 5.8, "--", "--"], ["12/01/2012 10:00 am", 37, "--", 1030.9, 40, 5.8, "--", "--"], ["12/01/2012 11:00 am", 37, "--", 1031.2, 40, 5.8, "--", "--"], ["12/01/2012 12:00 pm", 38, "--", 1031.6, 60, 5.8, "--", "--"], ["12/01/2012 1:00 pm", 38, "--", 1032.1, 50, 9.2, "--", "--"], ["12/01/2012 2:00 pm", 38, "--", 1031.9, 40, 5.8, "--", "--"], ["12/01/2012 3:00 pm", 37, "--", 1033, 40, 3.4, "--", "--"], ["12/01/2012 4:00 pm", 37, "--", 1033.1, 50, 5.8, "--", "--"], ["12/01/2012 5:00 pm", 38, "--", 1031.9, 70, 5.8, "--", "--"], ["12/01/2012 6:00 pm", 39, "--", 1031.2, 50, 5.8, "--", "--"], ["12/01/2012 7:00 pm", 39, "--", 1030.8, 50, 5.8, "--", "--"], ["12/01/2012 8:00 pm", 39, "--", 1030.4, 50, 5.8, "--", "--"], ["12/01/2012 9:00 pm", 39, "--", 1030.7, 50, 5.8, "--", "--"], ["12/01/2012 10:00 pm", 39, "--", 1030.8, 40, 5.8, "--", "--"], ["12/01/2012 11:00 pm", 40, "--", 1031.3, 50, 4.7, "--", "--"], ["12/02/2012 12:00 am", 40, "--", 1031.4, 50, 6.9, "--", "--"], ["12/02/2012 1:00 am", 40, "--", 1031.1, 50, 4.7, "--", "--"], ["12/02/2012 2:00 am", 40, "--", 1030.6, 40, 4.7, "--", "--"], ["12/02/2012 3:00 am", 41, "--", 1030.1, 50, 5.8, "--", "--"], ["12/02/2012 4:00 am", 41, "--", 1030, 40, 6.9, "--", "--"], ["12/02/2012 5:00 am", 41, "--", 1029.9, 50, 8.1, "--", "--"], ["12/02/2012 6:00 am", 42, "--", 1029.4, 20, 2.2, "--", "--"], ["12/02/2012 7:00 am", 42, "--", 1029.2, 30, 3.4, "--", "--"], ["12/02/2012 8:00 am", 42, "--", 1028.7, 60, 2.2, "--", "--"], ["12/02/2012 9:00 am", 42, "--", 1028.2, 40, 2.2, "--", "--"], ["12/02/2012 10:00 am", 42, "--", 1028, 20, 4.7, "--", "--"], ["12/02/2012 11:00 am", 42, "--", 1028, 30, 5.8, "--", "--"], ["12/02/2012 12:00 pm", 42, "--", 1028.2, 0, 0, "--", "--"], ["12/02/2012 1:00 pm", 42, "--", 1027.9, "--", "--", "--", "--"], ["12/02/2012 2:00 pm", 42, "--", 1026.9, 190, 3.4, "--", "--"], ["12/02/2012 3:00 pm", 42, "--", 1026.9, 190, 2.2, "--", "--"], ["12/02/2012 4:00 pm", 43, "--", 1026.6, 280, 2.2, "--", "--"]];
tableGrid = {};
$(document).ready(function() {
    tableGrid = new TableGrid();
    tableGrid.buildGrid(rd);
});​





​

0 个答案:

没有答案