我在我的应用程序中使用datatables。每当用户点击任何我要突出显示的行并从所选行中选择一些值时。
"oTableTools": {
"sRowSelect": "single",
"fnRowSelected": function ( node ) {
var s=$(node).children();
alert("Selected Row : " + $s[0]);
}
我尝试了sRowSelect
和fnRowSelected
,但没有运气。该行未突出显示,并且未调用fnRowSelected
。即使控制台上没有错误。
这是我的完整代码
var userTable = $('#users').dataTable({
"bPaginate": true,
"bScrollCollapse": true,
"iDisplayLength": 10,
"bFilter": false,
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"oLanguage": {
"sLengthMenu": "Display _MENU_ records per page",
"sZeroRecords": "Enter a string and click on search",
"sInfo": "Showing _START_ to _END_ of _TOTAL_ results",
"sInfoEmpty": "Showing 0 to 0 of 0 results",
"sInfoFiltered": "(filtered from _MAX_ total results)"
},
"aaSorting": [[ 0, "asc" ]],
"aoColumns": [/* Name */ null,
/*Institution*/null,
/*Email*/null],
"oTableTools": {
"sRowSelect": "single",
"fnRowSelected": function ( node ) {
alert("Clicked");
}
}
});
我错过了什么吗?
修改
现在能够突出显示所选的row.Added class =“display”到HTML表格。仍然想知道为什么我没有在datatable文档中找到它。现在看看如何收集选定的值。
答案 0 :(得分:5)
我是这样做的
只需将此功能添加到您的页面(如果用户是您的表ID)
$("#users tbody").delegate("tr", "click", function() {
var iPos = userTable.fnGetPosition( this );
if(iPos!=null){
//couple of example on what can be done with the clicked row...
var aData = userTable.fnGetData( iPos );//get data of the clicked row
var iId = aData[1];//get column data of the row
userTable.fnDeleteRow(iPos);//delete row
}
答案 1 :(得分:3)
当您使用fnRowSelected
时(即创建新的tabletool时),您必须使用
"sRowSelect": "multi",
这将解决问题。如果有帮助,请增加我的评论数。我需要更多积分。
我在我的代码中使用它如下
pqrtbl = new TableTools(NameOfTbl, { "sRowSelect": "multi",
"fnRowSelected": function ( node ) {
var s= $(node).children();
fnAddToSelLst(s[1].innerText);
},.......................
//column index depend upon your req.
答案 2 :(得分:0)
所选的类应该是,在您的函数中使用$s
并定义var s
不同的var。
"oTableTools": {
"sSelectedClass": "yourclassname",
"sRowSelect": "single",
"fnRowSelected": function ( node ) {
var s=$(node).children();
alert("Selected Row : " + s[0]);
}
}
答案 3 :(得分:0)
如果你想选择多行,想要获取所选行的数据用于ajax目的检查
http://jsfiddle.net/ezospama/1/
DataTable代码如下
$(document).ready(function() {
var table = $('#datatable').DataTable();
$('#datatable tbody').on( 'click', 'tr', function (){
$(this).toggleClass('selected');
} );
$('#btn').click( function () {
console.log(table.rows('.selected').data());
alert("Check the console for selected data");
} );
})