我正在尝试填充光滑的网格,它在调试时显示值但未在网页中显示。
我添加了所有必需的参考资料。这是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月,2月,3月,其状态分别为2列。
变量太多无法给出答案。但是我建议你在页面加载时创建网格,然后用ajax加载的数据填充它,而不是每次都创建网格。 根据我的经验,不可见的数据通常与CSS相关。
看一下SlickGrid仓库中的样本,它们非常全面。确保你使用https://github.com/6pac/SlickGrid而不是旧的MLeibman回购。
如果您需要帮助,最好的想法是在slickgrid repo的示例文件夹中创建一个独立的测试页面,该页面可以使用本地文件(除了ajax调用)。如果您可以分享,我们可以轻松地重现行为。作为奖励,大约90%的时间您将在创建示例页面时解决问题。
检查以查看-jax调用与列Field中提供的属性匹配后的数据属性,反之亦然。 - 如果你传递的容器是正确的。