我定义了一个动态数据表。
ListLone_datatable = jQuery('#my_table').dataTable(
{
'bFilter': false,
'bPaginate': true,
'iDisplayLength': 5,
'bLengthChange': false,
'bSort': true,
'bInfo': true,
'bAutoWidth': false,
'sPaginationType': 'full_numbers',
'oLanguage':
{
'oPaginate':
{
'sPrevious': '«',
'sNext': '»'
}
},
'bProcessing': true,
'bServerSide': true,
'sDom': '<"dataTables_top"pi>lftpir',
'bDestroy': true,
'sAjaxSource': ListLone_datasource_url + ListLone_filter,
'aoColumns':
[
{
'fnRender':
function(row_data)
{ return _icon_html(row_data.aData[8], 'property_new.gif') },
'bSortable': false
},
{
'fnRender':
function(row_data)
{ return _icon_html(row_data.aData[9], 'property_featured.png') },
'bSortable': false
},
{
'fnRender':
function(row_data)
{
console.log('rowdata', row_data);
var control_div =
'<div class="row-actions">';
control_div +=
'<span><a href="' + row_data.aData[7] +
'" target="_blank">View</a> | </span>';
control_div +=
'<span><a href="admin.php?page=_properties&id=' +
row_data.aData[10] + '">Edit</a> | </span>';
control_div +=
'<span><a href="admin.php?page=_properties&id=' +
row_data.aData[10] +'" class="pl_listing_delete">Delete</a> | </span>';
if (typeof(Admin_properties_item_menu) != 'undefined')
{
var addon_data = Admin_properties_item_menu(row_data.aData);
control_div += addon_data;
}
control_div +=
'<span>' +
_flag_html(row_data.aData[10], row_data.aData[8],
'is_new', 'New', 0, 'property_new.gif') +
' | </span>';
control_div +=
'<span>' +
_flag_html(row_data.aData[10], row_data.aData[9],
'is_featured', 'Featured', 1,
'property_featured.png') +
'</span>';
control_div += '</div>';
excerpt_div = '';
if (!ListLone_is_mode_list)
excerpt_div = '<div>' + row_data.aData[11] + '</div>';
return row_data.aData[2] + excerpt_div + control_div;
}
},
{'fnRender': function(row_data) { return row_data.aData[3] }},
{'fnRender': function(row_data) { return row_data.aData[4] }},
{'fnRender': function(row_data) { return row_data.aData[5] }},
{'fnRender': function(row_data) { return row_data.aData[6] }},
{'fnRender': function(row_data) { return _featured_small_image(row_data.aData[12]) }},
{'bVisible': false},
{'bVisible': false},
{'bVisible': false},
{'bVisible': false},
{'bVisible': false}
]
});
问题是当从数据源中删除项目时,分页信息不会更新。
我做了测试:
console.log(ListLone_datatable.fnGetData());
一切似乎都井然有序。更新的项目列表是正确的。表中显示的是正确的项目,而不是分页信息。例如,如果a每页显示5个项目5个,则在删除一个项目后,该表格显示两个页面,第二个页面为空,文本显示为“显示6个条目中的1到5个”。 (当然重装后)。它似乎保留了表/分页的初始状态。如果切换到另一个新的分页设置(如每页6个),它似乎将其初始状态更新为正确的状态,但仍然无效。
更新其信息的唯一方法是执行列排序。然而,这在重装时会丢失。是什么导致这种情况?
答案 0 :(得分:0)
您可以再次调用jQuery('#my_table')。dataTable()函数来更新表。您可能需要传递自定义参数,以保留任何更改或对表数据进行动态添加/编辑。
答案 1 :(得分:0)
Datatables有一个函数调用fnDraw(),一旦删除了它依赖的数据,它就会为你重绘表。
$('#my_table').fnDraw()
答案 2 :(得分:0)
尝试强制"bStateSave": false