网格中未填充平滑网格值

时间:2019-02-06 09:21:11

标签: slickgrid slick.js

我试图填充光滑的网格,它在调试时显示值,但不在网页中显示。

我已经添加了所有必需的参考。这是js函数。

function LoadMonthStatus(dropdownYear, buttonId) {
 try {
    $(".screen").css({ opacity: 0.5 });
    $(".slick-cell").css({ opacity: 0.5 });

    dirtyFlag = false;
    var drpYear = document.getElementById(dropdownYear);
    year = drpYear.options[drpYear.selectedIndex].value;
    data = [];
    var dropdownoptions = ""; // "hard,soft,closed";
    var columns = {};
    var options = { 
        editable: true,
        enableCellNavigation: true,
        asyncEditorLoading: false,
        autoEdit: true,
        autoHeight: true
    };

    columns = [
        { id: "month", name: "Month", field: "Month", width: 250 },
        { id: "status", name: "Close Status", field: "Status", options: columnOptions, editor: Slick.Editors.Select, width: 150 }
    ];
    $.ajax({
        type: "GET",
        url: "http://localhost:51072/PULSE.Service/api/MonthCloseStatus/LoadMonths",
        data: { year: $("#drpYear").val() },
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            data = msg;
            monthStatusGrid = new Slick.Grid("#slkgrdMonths", data, columns, options);
            //grid.setSelectionModel(new Slick.CellSelectionModel());
            monthStatusGrid.onCellChange.subscribe(function (e, args) {
                var cell = monthStatusGrid.getCellNode(args.row, args.cell);
                cell.className += cell.className ? ' slick-cell-modified' : 'slick-cell-modified';
                dirtyFlag = true;
            });
            if (msg == null || msg == "")
                document.getElementById(buttonId).disabled = true;
            else
                document.getElementById(buttonId).disabled = false;
            //Enable the button

            $(".screen").css({ opacity: 1 });
            $(".slick-cell").css({ opacity: 1 });

        },
        error: function (xhr, textStatus, errorThrown) {
            try {
                var err = JSON.parse(xhr.responseText);
                jAlert(err.Message, 'PULSE');
            }
            catch (e) {
                jAlert(clientErrMessage, 'PULSE');
            }
            $(".screen").css({ opacity: 1 });
            $(".slick-cell").css({ opacity: 1 });

        }
    });
  }
  catch (e) {
    jAlert(clientErrMessage, 'PULSE');
  }
}

光滑的网格应在2列中分别填充1月,2月,3月之类的月份及其状态。

2 个答案:

答案 0 :(得分:0)

变量太多,无法给出答案。但是,我建议您在页面加载时创建网格,并在ajax加载时仅用数据填充它,而不是每次都可能创建网格。
以我的经验,不可见的数据通常与CSS有关。

看看SlickGrid回购中的样本,它们非常全面。确保您使用的是https://github.com/6pac/SlickGrid,而不是旧的MLeibman存储库。

如果您需要帮助,最好的主意是在slickgrid存储库的示例文件夹中创建一个独立的测试页,该页可以处理本地文件(除了ajax调用之外)。 如果您可以分享这一点,我们可以轻松地重现该行为。另外,在创建示例页面时,大约有90%的时间可以解决问题。

答案 1 :(得分:0)

查看 -如果ajax调用后数据的属性与“字段”列中提供的属性匹配,反之亦然。 -如果您通过的容器是正确的。