当前,我正在处理数据表。在此数据表中,我们可以修改某些列的数据。 但是问题在于,一旦用户修改了基准并且与数据表进行了交互,即“搜索,numberDisplay,...”,那么显示的数据就对应于AJAX请求的数据。
我使用的是1.11.1版的“ Jquery”,而使用的是1.9.4版的“ dataTables”
这是我的代码:
$(document).ready(function(){
var listeRespPosePlv = $('#listeRespPosePlv').val();
listeRespPosePlv = JSON.parse(listeRespPosePlv);
var listeRespPoseFormatted = [];
$(listeRespPosePlv).each(function(i, v){
listeRespPoseFormatted.push({'value': v.id_responsable_pose_plv, 'label': v.libelle});
});
$('#attribution_pose')[0].currentDataTable = $('#attribution_pose').dataTable({
"bProcessing": true,
"bServerSide": true,
"bStateSave": true,
'sAjaxSource': Router.url('campagne-plv-attribution'),
'aLengthMenu': [
[10, 25, 50, 1000, -1],
[10, 25, 50, 1000, "All"]
],
'iDisplayLength': 1000,
'fnServerParams' : function( aoData ) {
var idCampagnePlv = $('#id_campagne_plv').val();
aoData.push( { 'name': 'id_campagne_plv', 'value': idCampagnePlv } );
},
'fnDrawCallback': function(oSettings){
$('.datepicker').datepicker();
var table = this.fnGetData();
var test = $('#attribution_pose tbody tr');
for(var i = 0; i < table.length; i++){
for(var j = 0; j < table[i].length; j++){
if(table[i][j].localeCompare(test[i].cells[j].children[0].outerHTML) !== 0){
console.log('Diff');
}else{
console.log('Ok');
}
}
}
},
'oLanguage': {
'sUrl': Constante.get('base_full_url')+'assets/vendor/datatables/french.json'
}
}).columnFilter({
sPlaceHolder: "head:before",
aoColumns: [
{ type: "text" },
{ type: "text" },
{ type: "text" },
{ type: "text" },
{ type: "select" , values: listeRespPoseFormatted},
{ type: "text" },
{ type: "text" },
{ type: "text" },
null,
null,
null,
null,
{ type: "text" }
]
});
});
如何避免这种情况?
谢谢您的帮助。