HTML:
<div data-bind="koGrid: gridOptions" style="height:600px;border:solid 1px #ccc;"></div>
JS:
列定义:
{ field: 'orderCatalogUpdateID', cellTemplate: '<button data-bind="click: $userViewModel.removeItem">X</button>', displayName: ' ', width: '2%' }`
ViewModel上的removeItem函数:
self.removeItem = function (item) {
self.list.remove(item);
}
传递给item
函数的removeItem
不是绑定到行的数据项,而是KoGrid列。如何获取绑定到该行的数据项,以便将其传递给可观察数组上的remove
函数?
我尝试使用jQuery和各种单元格模板连接点击事件,尝试传入绑定到行的数据项,但没有成功。
答案 0 :(得分:5)
默认情况下,当前的datacontext将传递给click
处理程序,该处理程序是documentation中描述的当前列对象:
$ data:kg.Column://列实体
您需要传递的是$parent.entity: //your data model
,它是当前行实体。
所以你需要改变你的绑定:
{
field: 'orderCatalogUpdateID',
cellTemplate: '<button data-bind="click: ' +
' function() { $userViewModel.removeItem($parent.entity); }">X</button>',
displayName: ' ',
width: '2%'
}
演示JSFiddle。