Использовать jqxGrid для визуализации значений ячеек, которые являются объектами? - PullRequest
0 голосов
/ 04 октября 2018

Возможно ли в jqxGrid визуализировать значения ячеек, которые являются объектами?

Например, в этом примере Codepen каждая строка имеет атрибут details, который имеет значение объекта.Я хотел бы сказать, создайте пользовательский рендерер, который отображает строковую версию JSON, и пользовательский редактор для его изменения.

Проблема заключается в том, что значения строк отображаются в виде строки "[Object object]":

var rows = [
  { color: "red", details: { a: 1, b: 2 } },
  { color: "green", details: { a: 2, b: 4 } },
  { color: "blue", details: { a: 3, b: 8 } },
  { color: "yellow", details: { a: 4, b: 16 } }
];

Я попытался создать средство визуализации ячеек, но аргумент value уже сжат в строку "[Object object]" когда вызывается функция.Нужно ли что-то делать с адаптером данных, чтобы получить значение объекта?

var cellsrenderer = function(row, column, value) {
  console.log(value);
  return "<div>" + JSON.stringify(value) + "</div>";
};

var columns = [
  {
    text: "Color",
    datafield: "color",
    width: 100
  },
  {
    text: "Details",
    datafield: "details",
    width: 200,
    cellsrenderer: cellsrenderer
  }
];
var source = {
  localdata: rows,
  datatype: "array"
};
var dataAdapter = new $.jqx.dataAdapter(source, {
  loadComplete: function(data) {},
  loadError: function(xhr, status, error) {}
});
$("#grid").jqxGrid({
  height: 600,
  width: 600,
  source: dataAdapter,
  pageable: true,
  pagesize: 20,
  autoheight: true,
  columns: columns
});

enter image description here

1 Ответ

0 голосов
/ 04 октября 2018

попробуйте

var rows = [
  { color: "red", details: [{ a: 1, b: 2 }] },
  { color: "green", details: [{ a: 2, b: 4 }] },
  { color: "blue", details: [{ a: 3, b: 8 }] },
  { color: "yellow", details: [{ a: 4, b: 16 }] }
];
...