【问题标题】:Slick grid values not populating in the grid光滑的网格值未填充在网格中
【发布时间】:2019-02-06 09:21:10
【问题描述】:

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

我已添加所有必需的参考资料。这里是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');
  }
}

Slick 网格应在 2 列中分别填充一月、二月、三月等月份及其状态。

【问题讨论】:

    标签: slickgrid slick.js


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-12
        • 1970-01-01
        • 1970-01-01
        • 2017-10-01
        相关资源
        最近更新 更多