您好,我正在使用数据表,并使用异步 XHR 调用来加载表。我想做this但由于我使用 xhr 调用表,我的 fnCreateSelect 函数表示参数未定义,因为尚没有表数据。有没有办法在 fnInitComplete 内部调用 fnDrawCALlback 或反之亦然?
任何有关如何做到这一点的其他建议将不胜感激。
一些代码:这是我的 fnInitcomplete 函数,如果有帮助的话,我也使用固定列。
"fnInitComplete": function() {
$("thead th").each( function ( i ) {
this.innerHTML += "<div class='DataTables_sort_wrapper'><span class='css_right ui-icon ui-icon-carat-2-n-s'></span></div><br/>"+fnCreateSelect( fleetT.fnGetColumnData(i) );
$("thead select").each( function (i) {
this.visibleIndex = i;
} );
$('select', this).change( function () {
var visIndex = typeof this.visibleIndex == 'undefined' ? 1 : this.visibleIndex;
fleetT.fnFilter( $(this).val(), visIndex);
} );
});
new FixedColumns( fleetT, {
"iLeftColumns": 2,
"iLeftWidth": 220
} );
最佳答案
当所有数据都已在客户端上时,您尝试执行的操作效果很好,因为它可以获得不同的值来创建选择。但是,如果您进行服务器端分页,则客户端只有数据集的一小部分,因此您无法获得完整数据集的不同值,而只能获得您当前正在管理的 10/25 行的不同值。 我的建议很简单,您创建选择服务器端(通过对数据库进行正常的 DISTINCT 查询),然后正常渲染它们。
关于javascript - 在数据表中的 fnInitComplete 函数内使用 fnDrawCallback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11789916/