您可以使用敲除來輕鬆地隱藏/顯示錶格列。一個簡單而有效的方法是使用列上的visible
綁定來控制其可見性。
以下是一個演示的想法小提琴:http://jsfiddle.net/Ex9J9/42/
編輯 - 更新小提琴修復404錯誤與淘汰賽資源
觀點:
<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);