0

我在表格中正确显示我的 JSON 时遇到问题。我正在使用handsontable 在网站上建立一个网格。正如我所想,我需要做的就是以正确的 JSON 格式将数据发送到 handsontable link

我正在使用 struts2-json-plugin 将 Java 对象序列化为 JSON 格式,下面的这个 JSON 是由插件自动生成的。

不幸的是,在将 JSON 发送到 handsontable 之后,表格中只有类似的值[object Object]出现在表格的第一个单元格中,而不是应该出现在整行(不同列中)的真实值,而不仅仅是在第一个单元格中......

  • 我的错误表列和值的屏幕截图:

在此处输入图像描述

  • 带有预期表列和值的屏幕截图:

在此处输入图像描述

我从后端发送 JSON 是这样的:

{
  "values": [
    {
      "fieldDTO": [
        {
          "value": "Elda"
        },
        {
          "value": "HCPP"
        },
        {
          "value": "Yes"
        },
        {
          "value": "Green"
        }
      ]
    }
  ],
  "headers": [
    "Name",
    "Qualification",
    "Certification",
    "Classification"
  ],
  "rows": [
    "Albania"
  ]
};

显示表格如下:

<div id="spreadsheet"></div>
$("#spreadsheet").handsontable({
  startRows: 4,
  startCols: 20,
  rowHeaders: data.rows,
  colHeaders: data.headers,
  data: data.values,
  contextMenu: true,
  width: 1000,
  manualColumnResize: true,
  manualColumnMove: true,
  columnSorting: true
});

FIDDLE:您可以在 FIDDLE HERE中查看。

为什么会失败?我的 JSON 格式是否不正确,无法在每列中显示数据?我需要在一行中显示集合 FieldDTO 的列表,这就是 JSON 具有上述形式的原因。如何使此代码(在表格中显示数据)正常工作?

4

1 回答 1

1

您需要columns在被调用中指定一个属性handontable才能深入了解您的(有点奇怪,见下文)数据结构:

http://jsfiddle.net/dwu2E/

$("#spreadsheet").handsontable({
  // etc...
  columns: [
    { data: "fieldDTO.0.value" }, 
    { data: "fieldDTO.1.value" }, 
    { data: "fieldDTO.2.value" },
    { data: "fieldDTO.3.value" }
  ]
});

有关更多信息,请参阅数组语法的文档

我说“奇怪”是因为在对象中而不是在数组中具有适当命名的列会更好。基于位置的结构很脆弱。

于 2013-05-28T17:16:48.397 回答