显示SlickGrid但未在网格中填充数据。直接ajax调用很好,但dataview的问题请任何人帮助我
var jqxhr = $.getJSON('http://localhost:50305/Service1.svc/json/Projects', function (data) {
for (var i = 0; i < data.length; i++) {
slickdata[i] = {
ProjectID: data[i].ProjectID,
ProjectTypeID: data[i].ProjectTypeID,
ProjectName: data[i].ProjectName,
};
}
console.log("slickdata is" + slickdata);
dataView.onRowCountChanged.subscribe(function (e, args) {
grid.updateRowCount();
grid.render();
});
dataView.onRowsChanged.subscribe(function (e, args) {
grid.invalidateRows(dataView.rows);
grid.render();
});
dataView.beginUpdate();
dataView.setItems(slickdata, "ProjectID");
dataView.endUpdate();
dataView = new Slick.Data.DataView({ inlineFilters: true });
grid = new Slick.Grid("#teamGrid", dataView, columns, options);
答案 0 :(得分:0)
一旦定义了网格,你需要做
grid.init();
以及
alert(data);
是警报正确的json对象。将数据发送到控制台,你可以看到那里的json对象
答案 1 :(得分:0)
如果您想使用评论中提到的Dataview
。您需要几行代码,还需要将data
添加到dataview
对象。请参阅以下内容:
// create DataView & Grid object
var dataView = new Slick.Data.DataView();
var grid = new Slick.Grid("#myGrid", dataView, columns, options);
// then bind data to the DataView object
dataView.beginUpdate();
dataView.setItems(data);
dataView.endUpdate();
您可以在此处查看更完整的DataView示例:Example4-model
的修改
您的问题似乎没有在您的数据中包含唯一的id
属性,但SlickGrid特别需要它,如果您没有id
,则会在控制台中抛出错误。我通常更喜欢在服务器端修复此问题(PHP或您使用的任何语言)。您还可以通过javascript添加id
属性:
for (var i = 0; i < data.length; i++) {
data.id = data[i].ProjectID; // clone your ProjectID into a new 'id' property
}
// then bind data to the DataView object
dataView.beginUpdate();
dataView.setItems(data);
dataView.endUpdate();