slickgrid显示对象而不是值

时间:2014-08-08 14:47:24

标签: jquery html knockout.js slickgrid

我正在关注Slickgrid

的示例

我使用ajax将数据加载到可观察数组

$.ajax({
    url: "../Service/Data",
    type: "PUT",
    contentType: 'application/json',
    processData: false,
    data: JSON.stringify(Id),
    error: function (XMLHttpRequest, textStatus, errorThrown) {

        alert(errorThrown);
    },
    success: function (allData) {
        var mappedData= $.map(allData, function (item) {

            return new TableData(item);
        });
        self.MyArray(mappedData);
    }
});

然后在我看来模型就是这样做

grid = new Slick.Grid("#myGrid", self.MyArray(), columns, options);

在我看来,我的行为如下

 <div id="myGrid" style="width:300px;height:420px;"></div>

但是我的网格输出低于输出。它没有显示数据而是对象

enter image description here

这里有什么不妥?

UPDATE1

这是我的列定义

var columns = [
      { id: "title", name: "Title", field: "title" },
      { id: "duration", name: "Duration", field: "duration" },
      { id: "percent", name: "% Complete", field: "percent" }

    ];

    var options = {
        enableCellNavigation: true,
        enableColumnReorder: false
    };

这就是我的实际代码中的obs数组的样子

enter image description here

更新2 这是我的TableData

  function TableData(data) {

        this.id= ko.observable(data.id);
        this.duration= ko.observable(data.duration);
        this.percent= ko.observable(data.percent);
    }

我从服务器获取json数据

1 个答案:

答案 0 :(得分:0)

只是一个想法,你没有显示从../Service/Data返回的JSON的格式实际上是什么,但是,你是否尝试过直接将返回的JSON数据写入MyArray?

success: function (allData) {
    self.MyArray = allData;
}