我整个周末都很适合这个,所以我希望在这里能找到答案:
我使用json在服务器端调用http://datatables.net/examples/server_side/select_rows.html,但我无法从数据表中获取所选项目以将其设置为隐藏的输入(通过Struts操作传递)对于后端进程),所以数据的选择工作正常,但我无法在DataTable API中找到如何获取所选行的值,如:
$("#myHiddenValues").val(datatableSelectedValues);
var datatableSelectedValues是包含rowsId(或其他一些对象)的数组,其中包含我需要的数据,
谢谢:)
答案 0 :(得分:5)
table.rows({selected: true}).data())
返回您选择访问对象的对象数组必须迭代并通过索引访问它们。例如,如果您需要展示name
,position
和office
:
HTML CODE
<table id="example" class="display DataTable" cellspacing="0" width="100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Office</th>
<th>Age</th>
<th>Start date</th>
<th>Salary</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tiger Nixon</td>
<td>System Architect</td>
<td>Edinburgh</td>
<td>61</td>
<td>2011/04/25</td>
<td>$320,800</td>
</tr>
</tbody>
JS CODE
$(document).ready(function() {
var oTable = $('#example').DataTable();
$('#example tbody').on( 'click', 'tr', function () {
$(this).toggleClass('selected');
var pos = oTable.row(this).index();
var row = oTable.row(pos).data();
console.log(row);
} );
$('#button').click( function () {
var oData = oTable.rows('.selected').data();
for (var i=0; i < oData.length ;i++){
alert("Name: " + oData[i][0] + " Position: " + oData[i][1] + " Office: " + oData[i][2]);
}
} );
} );