我正在使用knockout simplegrid并希望在中心显示一列。
我尝试使用text-align:center添加以下代码,以在我的视图模型中启动简单网格
this.gridViewModel = new ko.simpleGrid.viewModel({
data: this.items,
columns: [
{ headerText: "Item Name", rowText: "name" },
{ headerText: "Sales Count", rowText: "sales",text-align: "center" },
{ headerText: "Price", rowText: function (item) { return "$" + item.price.toFixed(2) } }
],
pageSize: 4
});
但它引发了我错误意外的令牌 -
我还添加了一个可观察的simplegrids视图模型,即this.textAlign = ko.observable("left");
我增加了价值"离开"因为这将是默认的。但我不知道如何在simplegrid视图模型中使用这个observable。
以下是Fiddle
急切地等待你聪明人的反馈。
UPDATE1
我知道为什么我会得到"意外的令牌 - "错误。因为它期待text-align的javascript样式名称。等效的javascript样式名称是 textAlign ,没有 - 。我从这个Page
获得了这些信息但我仍然无法将文本动态绑定到中心
答案 0 :(得分:1)
knockout simplegrid的功能非常有限,因此您需要自己添加此功能。
您必须扩展"ko_simpleGrid_grid"
模板并在gnerated style
上添加td
绑定:
<tr data-bind=\"foreach: $parent.columns\">\
<td data-bind=\"text: typeof rowText == 'function' ? \
rowText($parent) : $parent[rowText], style: $data.cellStyle \"></td>\
</tr>\
现在您可以使用以下内容传递任何有效的style
绑定值
columns: [
{ headerText: "Item Name", rowText: "name" },
{ headerText: "Sales Count", rowText: "sales",
cellStyle: { textAlign: "center" } },
{ headerText: "Price",
rowText: function (item) { return "$" + item.price.toFixed(2) } }
],
演示JSFiddle。