var j = a.ao...j++) o == a.aoOpenRows[j].nParent &&. I use dom data resource.
a._iDisplayStart+a._iDisplayLength>a.aiDisplay.length||a._iDisplayLength==-1?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength
oTable = $('#myTable').dataTable( {
"oLanguage": {
"sUrl": "/site_media/language/pl_PL.txt"
},
"sDom": 'T<"clear"><"fg-toolbar ui-widget-header ui-corner-tl ui-corner-tr ui-helper-clearfix"lfr>t<"fg-toolbar ui-widget-header ui-corner-bl ui-corner-br ui-helper-clearfix"ip>',
"sPaginationType": "full_numbers",
"bProcessing": true,
"bServerSide": true,
"bAutoWidth": false,
"sScrollX": "100%",
"bScrollCollapse": true,
"bJQueryUI": true,
"sAjaxSource": "/data",
"aoColumns" : [
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
null,
{ "bSortable": false },
{ "bSortable": false },
{ "bSortable": false }
]
} );
<script type="text/javascript">
var oTable;
var displayLength;
var displayStart;
$(function () {
refreshTable();
});
function refreshTable() {
// before creating a table, make sure it is not already created.
// And if it is, then remove old version before new one is created
if ($("#stakeholders")) {
// contains the dataTables master records
var s = $(document).dataTableSettings;
if (s != undefined) {
var len = s.length;
for (var i = 0; i < len; i++) {
// if already exists, remove from the array
if (s[i].sInstance = "stakeholders") {
s.splice(i, 1);
$("#stakeholders").siblings("#stakeholders_length").remove();
$("#stakeholders").siblings("#stakeholders_filter").remove();
$("#stakeholders").siblings("#stakeholders_info").remove();
$("#stakeholders").siblings("#stakeholders_paginate").remove();
$("#stakeholders").unwrap();
}
}
}
}
//initial 10 records each page
if (displayLength == undefined) {
displayLength = 10;
}
if (displayStart == undefined) {
displayStart = 0;
}
oTable = $('#stakeholders').dataTable(
{ "iDisplayLength": displayLength,
"iDisplayStart": displayStart
}
);
var nNodes = oTable.fnGetNodes();
if (nNodes.length < displayStart) {
displayStart = nNodes.length;
}
setDataTableControlEvents();
}
function setDataTableControlEvents() {
$("#stakeholders_length").change(function () {
displayLength = $("#stakeholders_length option:selected").text();
if (displayStart < displayLength) {
displayStart = 0;
}
else if (displayStart % displayLength != 0) {
displayStart = Math.abs(displayStart / displayLength) * displayLength;
}
})
$("#stakeholders_previous").click(function () {
if (parseInt(displayStart) >= parseInt(displayLength)) {
displayStart = parseInt(parseInt(displayStart) - parseInt(displayLength));
}
else {
displayStart = 0;
}
})
$("#stakeholders_next").click(function () {
displayStart = parseInt(displayStart) + parseInt(displayLength);
})
}
</script>
<div id="stakeholders">
<table class="display" cellpadding="0" cellspacing="0" border="0">
......
</table>
</div>
<script type="text/javascript">
var dataTable;
$(document).ready(function () {
dataTable = $('#stakeholders').dataTable();
});
function refreshTable() {
var displayStart = dataTable.fnSettings()._iDisplayStart;
var displayLength = dataTable.fnSettings()._iDisplayLength;
var sorting = dataTable.fnSettings().aaSorting;
dataTable.fnDestroy();
dataTable = $('#stakeholders').dataTable({
"iDisplayStart": displayStart,
"iDisplayLength": displayLength,
"aaSorting": sorting
});
}
</script>
displayLength = $("#stakeholders_length option:selected").text()
It needs a parseInt() on it. So not an issue with DataTables thankfully :-). There is however the issue about fnDestroy which I'm just looking at.
oSettings.aoData[i].nTr.insertBefore( nTd, $('>td:eq('+iBefore+')', oSettings.aoData[i].nTr)[0] );
oSettings.aoData[i].nTr.insertBefore( nTd, oSettings.aoData[i].nTr.getElementsByTagName('td')[iBefore] );
It looks like you're new here. If you want to get involved, click one of these buttons!
Get useful and friendly help straight from the source.