我有一個DataTable,它使用footerCallback在每列上進行求和。這對每列中的數據都是完美的,但我也希望添加更改正在求和的每個單元值的功能。我已經嘗試向這些單元格添加「contenteditable」,但進行更改不會影響頁腳中的總和。DataTables footerCallback and contenteditable
這裏是在我遇到的行爲簡單的jsfiddle:https://jsfiddle.net/rantoun/552y9j90/6/
HTML:
<table id="table1">
<thead>
<tr>
<th>Fruit</th>
<th># Eaten</th>
<th># Remaining</th>
</tr>
</thead>
<tfoot>
<tr>
<th align="right">Count</th>
<th align="left"></th>
<th align="left"></th>
</tr>
</tfoot>
<tbody>
<tr>
<td>Apples</td>
<td contenteditable>3</td>
<td contenteditable>8</td>
</tr>
<tr>
<td>Oranges</td>
<td contenteditable>6</td>
<td contenteditable>5</td>
</tr>
<tr>
<td>Bananas</td>
<td contenteditable>2</td>
<td contenteditable>9</td>
</tr>
</tbody>
</table>
的jQuery:
$("#table1").DataTable({
"paging": false,
"searching": false,
"info": false,
"footerCallback": function (row, data, start, end, display) {
var columns = [1, 2];
var api = this.api();
_.each(columns, function(idx) {
var total = api
.column(idx)
.data()
.reduce(function (a, b) {
return parseInt(a) + parseInt(b);
}, 0)
$('tr:eq(0) th:eq('+idx+')', api.table().footer()).html(total);
})
}
});
我還發現了數據表編輯器(https://editor.datatables.net/examples/inline-editing/simple) ,這對於這種情況來說是完美的 - 但它不是開源的。歡迎任何有關如何模仿內聯編輯功能的想法。我想避免使用模態來做到這一點。任何幫助表示讚賞!
基本上,我做的是添加一個點擊事件處理程序,當您單擊一個單元格時,它會將單元格更改爲文本框以讓我的用戶輸入信息。我使用了模糊事件處理程序來更新數據表格數據對象並將其轉換回常規表格單元 – Bindrid