javascript - Wijgrid 中是否可以有一个对象类型的单元格?

标签 javascript knockout.js wijmo wijgrid

我使用 KnockOut 可观察数组来填充 wijgrid。在wijgrid 中,我想使用JavaScript 对象作为某些单元格的值。不幸的是,wijmo 似乎在它自己的模型中将对象转换为字符串。

请有一个look at this example 。我想在表中显示车主姓名,但我还需要保留 ID(和模型数据结构)。

knockout View 模型

var someData =[ { AssetCode: "Truck 5",
              Owner: {
                 id: 1,
                 name: 'Pete'},
              VIN: "T3SN2ADN",
              Odo: 232109,
              TimeStamp: "2012-07-21T09:13:12Z"},
            { AssetCode: "Car 8",
              Owner: {
                 id: 3,
                 name: 'Brian'},
              VIN: "COFAQ211",
              Odo: 433299,
              TimeStamp: "2012-07-17T15:34:54Z"}];

function ViewModel() {
    var self = this;
    self.gridData = ko.observableArray(someData);
}

ko.applyBindings(new ViewModel());

wijgrid

<table id="t1" data-bind="wijgrid: {
    data: gridData,
    columns: [
    { headerText: 'Asset Code', dataKey: 'AssetCode', dataType: 'string'},
    { headerText: 'Owner name', dataKey: 'Owner'},         <!-- PROBLEM LINE -->
    { headerText: 'VIN', dataKey: 'VIN', dataType: 'string' },
    { headerText: 'Odometer', dateKey: 'Odo', dataType: 'number' },
    { headerText: 'Time', dataKey: 'TimeStamp', dataType: 'datetime', dataFormatString: timePattern }

]}"></table>

我已经尝试过:

  • 标准 KnockOut 方法:{ headerText: 'Owner name', dataKey: 'Owner.name'}
  • 创建自定义 cellFormatter:{ headerText: 'Owner name', dataKey: 'Owner', cellFormatter: MY_FORMATTER}

我已经尝试了几乎所有我能想到的方法来让它工作,但是 wijmo 在这里似乎相当僵化......

此外,当我在 Chrome 中调试时,看起来好像 wijmo 在进行任何格式化之前已将对象转换为它自己的模型中的字符串。这不是很有用..

编辑 - 我们正在使用 Wijmo 2.3.9。到目前为止,我们在使用 Wijmo 3.* 时遇到了性能问题,因此不会立即进行升级。

最佳答案

您可以通过处理 cellStyleFormatter 为任何单元格设置自定义值(或在您的情况下显示车主姓名),如下所示:

cellStyleFormatter: function (args) {
//check for specific column and header row
if (args.column.headerText == "Owner name" && args.row.dataRowIndex >= 0) {
     //set the custom value to cell i.e. vehicle owner name
     args.$cell.text(args.row.data.Owner.name);
 }
}

有关CellStyleFormatter的更多信息,您可以引用:http://wijmo.com/wiki/index.php/Grid#cellStyleFormatter

关于javascript - Wijgrid 中是否可以有一个对象类型的单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16162378/

相关文章:

javascript - 使用 grunt 构建整个 Angular 项目

javascript - 如何使用 bootstrap 4 轮播的方向属性?

templates - foreach 中的 KnockoutJS 模板

javascript - Jquery平滑滚动: Cannot read property 'top' of undefined

javascript - 将字符串值传递到 HTML,而不使用使用 javascript 的表单

javascript - Bootstrap DatePicker 允许通过键入进行编辑

javascript - 使用 knockout 更新 href 查询参数

wijmo - Wijmo Autocomplete & AngularJS - 从加载的数据设置初始值

jquery - 如何禁用 Wijmo 菜单项?

javascript - 如何在单元格 spreadJs 中分配数据类型