我使用 KnockOut 可观察数组来填充 wijgrid。在 wijgrid 中,我想使用 JavaScript 对象作为某些单元格的值。不幸的是,wijmo 似乎在它自己的模型中将对象转换为字符串。
请看一下这个例子。我想在表格中显示车主姓名,但我还需要保留 ID(和模型数据结构)。
淘汰视图模型
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());
维吉格
<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>
我试过了:
- 标准的淘汰赛方法:
{ headerText: 'Owner name', dataKey: 'Owner.name'}
- 创建自定义 cellFormatter:
{ headerText: 'Owner name', dataKey: 'Owner', cellFormatter: MY_FORMATTER}
我已经尝试了几乎所有我能想到的方法来让它工作,但是 wijmo 在这里看起来很僵硬......
此外,当我在 Chrome 中调试时,似乎 wijmo 在任何格式化之前已经将对象转换为它自己模型中的字符串。这个用处不大。。
编辑- 我们使用的是 Wijmo 2.3.9。到目前为止,我们在使用 Wijmo 3.* 时遇到了性能问题,因此升级并非迫在眉睫。