첫째, nemesv 맞아, 이것은 아마도 생산을위한 것은 아닙니다 용도.
변경하려는 경우 격자를 렌더링하는 데 사용하는 템플릿을 덮어 쓸 수 있습니다 (업데이트 된 바이올린 : http://jsfiddle.net/fNhKp/4/).
<div class='liveExample'>
<div data-bind='simpleGrid: gridViewModel, simpleGridTemplate:"custom_grid_template"'> </div>
</div>
<script type="text/javascript" id="custom_grid_template">
<table class="ko-grid" cellspacing="0">
<thead>
<tr data-bind="foreach: columns">
<th data-bind="text: headerText"></th>
</tr>
</thead>
<tbody data-bind="foreach: itemsOnCurrentPage">
<tr data-bind="foreach: $parent.columns">
<!--ko if: typeof rowText == 'object' && typeof rowText.action == 'function'-->
<td><button data-bind="click:rowText.action($parent)">action</button></td>
<!-- /ko -->
<!--ko ifnot: typeof rowText == 'object' && typeof rowText.action == 'function'-->
<td data-bind="text: typeof rowText == 'function' ? rowText($parent) : $parent[rowText] "></td>
<!--/ko-->
</tr>
</tbody>
</table>
</script>
을 그리고 다음과 같이 당신의 js를 수정 :
그래서 먼저 새 템플릿을 생성하고 지정 simpleGridTemplate 바인딩 ko.simpleGrid`의 소스를 수정하지 않고
var PagedGridModel = function(items) {
this.items = ko.observableArray(items);
this.gridViewModel = new ko.simpleGrid.viewModel({
data: this.items,
columns: [
{ headerText: "Item Name", rowText: "name" },
{ headerText: "Sales Count", rowText: "sales" },
{ headerText: "Price", rowText: function (item) { return "$" + item.price.toFixed(2) } },
{ headerText: "Add", rowText: "Add"},
{ headerText: "Action", rowText: {action: function(item){
return function(){
console.log(item)
}
}}}
],
pageSize: 4
});
};
당신은이 작업을 수행 할 수 없습니다 '. KoGrid https://github.com/Knockout-Contrib/KoGrid istead를 사용하십시오. – nemesv