我使用了一个自制的php框架和带有服务器端处理方法的jquery数据表。我写的脚本自动与php在头,一切工作良好。现在我试图找到一种方法,通过数据库索引字段在datatable-result中突出显示特定行,在这种情况下是"manid"。最好的方法是什么?javascript:
var oTable;
var giRedraw = false;
$(document).ready(function(){
oTable = $('#dt_sys_man').dataTable({
/* Column Width */
"aoColumns": [
{ "bVisible": true,"sWidth": "2%","sClass":"ClickClass" },
{ "sWidth": "98%","sClass":"ClickClass" }
],
/* Serverside Prozessing(Ajax) */
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": "index.php?res=dt_sys_man",
/* Default Settings */
"bAutoWidth": false,
"iDisplayLength": 25,
"aaSorting": [[ 0, "asc" ]],
"bSortable": false,
"bPaginate": false,
"bFilter": false,
"bInfo": false,
});
/* Row Click */
$('#dt_sys_man tbody td.ClickClass').live('click',function(){
var aPos = oTable.fnGetPosition(this);
var aData = oTable.fnGetData(aPos[0]);
/*
$("#dt_sys_man tbody tr").removeClass('row_selected');
$(this).addClass('row_selected');
*/
window.location = "index.php?do=sys-man&manid="+aData[0]+"&uid=0";
});
/* highlite row */
$("#dt_sys_man tbody tr").live("click", function(event){
$("td.row_selected", oTable.fnGetNodes()).removeClass('row_selected');
$(event.target).parent().find("td").addClass('row_selected');
});
});
html: <table cellpadding="0" cellspacing="0" border="0" class="display" id="dt_sys_man" width="100%">
<thead>
<tr>
<th>MANID</th>
<th>Mandant</th>
</tr>
</thead>
<tbody>
<tr>
<td colspan="5" class="dataTables_empty">Loading data from server</td>
</tr>
</tbody>
<tfoot>
<tr>
<th></th>
<th></th>
</tr>
</tfoot>
你可以使用fnRowCallback:
"aoColumns": [
{ "bVisible": true,"sWidth": "2%","sClass":"ClickClass" },
{ "sWidth": "98%","sClass":"ClickClass" }
],
"fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
if(aData.manid == 'whatever you're checking for'){
$(nRow).css('text-decoration', 'line-through');
}
return nRow;
}
本例检查manid值,如果匹配,则对
应用贯穿行类。UPDATE:现在你已经详细阐述了你的问题,我意识到这不是你想要的....但是,如果要将最后单击的行与aData一起返回,那么可以使用此方法。