问题描述
请知道如何在重绘 dataTable 时初始化其他没有表格的函数?
如果您在服务器端,这里是如何在每次更改(例如排序、搜索、浏览量)时从数据表中获取数组数据的方法。如果没有服务器端它也可以工作,但您只需要为搜索自定义操作......排序,视图将工作
在我的情况下,我想通过在 DataTables 的每次更改中显示我的 mapMarkers 来使用 dataTables 中的数组。通过 drawCallback 每次都放入 form_data 全局变量
var x_table = $('#myTable')
.DataTable({
paging: true,info: true,searching: true,searchable: true,pageLength: 25,// scrollY: 350,fixedHeader: true,order: [[0,'desc']],// aaSorting: [[0,columnDefs: [
{ name : 'id',targets: 0,type: 'string',},{ name : 'title',targets: 1,// { name : 'status',{ name : 'description',targets: 2,{ name : 'address',targets: 5,{ name : 'lat',targets: 4,{ name : 'lng',targets: 3,// { name : 'gps_status',{ name : 'distance_to',targets: 6,],processing: true,serverSide: true,ajax: {
url: '{{ path('test_service') }}',type: 'POST',async: false,drawCallback: function() {
window.form_data = this.api().rows().data();
console.log(form_data);
console.log(form_data[0][0]);
console.log( 'Records on draw event lenght -> ' +form_data.length);
console.log( 'Redraw occurred at: '+new Date().getTime() );
}
// rowId: 'id'
})
// .on( 'draw',function () {
// initMap();
// })
;
现在我需要为谷歌地图 initMap() 重新初始化函数;在每个 drawCallback 上,但如果我取消注释 .on() 行,则 drawCallback 停止工作但 initMap();将初始化...
我试过这样的事情
$('#myTable').on( 'draw.dt',function () {
initMap();
alert( 'Table redrawn' );
});
但表停止工作... initMap();将初始化...但表将停止工作... 这里我提供视频
https://drive.google.com/file/d/1qLtXGSUIsp62PE6QLnLTZhC0SKqbCxy1
问题在这里(在视频中)它在第一次排序加载ajax请求后停止......但如果我尝试使用没有服务器端数据的dataTable......问题与第一次排序或页面浏览后相同。 () 函数初始化,dataTable 停止工作...
现在我唯一的解决方案是地图下的按钮:
$( "#updateMap" ).click(function() {
initMap();
});
和按钮
<button id='updateMap'>Load form_data variable</button>
点击时在变量 form_data 中加载新值并更新地图上的标记。
我想自动执行此操作...不是通过点击事件...但仍在寻找解决方案:)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)