您可以使用挖空轻松隐藏/显示表格列。一种简单但有效的方法是使用visible
列上的绑定来控制其可见性。
这是一个演示这个想法的小提琴:http: //jsfiddle.net/Ex9J9/42/
编辑 - 更新小提琴以修复 404 错误与 Knockout 资源
看法:
<h4>Select Columns:</h4>
<ul data-bind="foreach: gridOptions.columns">
<li>
<label>
<input type="checkbox" data-bind="checked: isVisible" /> <span data-bind="text: header"></span>
</label>
</li>
</ul>
<hr>
<table>
<thead>
<tr data-bind="foreach: gridOptions.columns">
<th data-bind="visible:isVisible, text: header"></th>
</tr>
</thead>
<tbody data-bind="foreach: people">
<tr data-bind="foreach: $parent.gridOptions.columns">
<td data-bind="text: $parent[dataMember], visible:isVisible"></td>
</tr>
</tbody>
</table>
查看模型:
var vm = {
gridOptions: {
columns: [{
header: 'First Name',
dataMember: 'firstName',
isVisible: ko.observable(true)
}, {
header: 'Last Name',
dataMember: 'lastName',
isVisible: ko.observable(true)
}]
},
people: [{
firstName: 'Bert',
lastName: 'Bertington'
}, {
firstName: 'Charles',
lastName: 'Charlesforth'
}, {
firstName: 'Denise',
lastName: 'Dentiste'
}]
};
ko.applyBindings(vm);