mirror of
https://github.com/DataTables/DataTables.git
synced 2024-12-03 15:24:10 +01:00
2c8868dd53
Fix: Call fnRender only once when using using bUseRendered (don't need to call it twice since our internal data cache already has the rendered value stored) sin ce this can cause some confusion with re-writing the data source value - 4871
155 lines
3.2 KiB
JavaScript
Executable File
155 lines
3.2 KiB
JavaScript
Executable File
// DATA_TEMPLATE: empty_table
|
|
oTest.fnStart( "aoColumns.fnRender" );
|
|
|
|
$(document).ready( function () {
|
|
/* Check the default */
|
|
var mTmp = 0;
|
|
var oTable = $('#example').dataTable( {
|
|
"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
|
|
"aoColumns": [
|
|
null,
|
|
{ "fnRender": function (a) {
|
|
mTmp++;
|
|
return a.aData[a.iDataColumn];
|
|
} },
|
|
null,
|
|
null,
|
|
null
|
|
]
|
|
} );
|
|
var oSettings = oTable.fnSettings();
|
|
|
|
oTest.fnWaitTest(
|
|
"Single column - fnRender is called twice for each row",
|
|
null,
|
|
function () { return mTmp == 57; }
|
|
);
|
|
|
|
oTest.fnWaitTest(
|
|
"Confirm that fnRender passes one argument (an object) with three parameters",
|
|
function () {
|
|
mTmp = true;
|
|
oSession.fnRestore();
|
|
oTable = $('#example').dataTable( {
|
|
"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
|
|
"aoColumns": [
|
|
null,
|
|
{ "fnRender": function (a) {
|
|
if ( arguments.length != 1 || typeof a.iDataRow=='undefined' ||
|
|
typeof a.iDataColumn=='undefined' || typeof a.aData=='undefined' )
|
|
{
|
|
mTmp = false;
|
|
}
|
|
return a.aData[a.iDataColumn];
|
|
} },
|
|
null,
|
|
null,
|
|
null
|
|
]
|
|
} );
|
|
},
|
|
function () { return mTmp; }
|
|
);
|
|
|
|
oTest.fnWaitTest(
|
|
"fnRender iDataColumn is the column",
|
|
function () {
|
|
mTmp = true;
|
|
oSession.fnRestore();
|
|
oTable = $('#example').dataTable( {
|
|
"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
|
|
"aoColumns": [
|
|
null,
|
|
{ "fnRender": function (a) {
|
|
if ( a.iDataColumn != 1 )
|
|
{
|
|
mTmp = false;
|
|
}
|
|
return a.aData[a.iDataColumn];
|
|
} },
|
|
null,
|
|
null,
|
|
null
|
|
]
|
|
} );
|
|
},
|
|
function () { return mTmp; }
|
|
);
|
|
|
|
oTest.fnWaitTest(
|
|
"fnRender aData is data array of correct size",
|
|
function () {
|
|
mTmp = true;
|
|
oSession.fnRestore();
|
|
oTable = $('#example').dataTable( {
|
|
"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
|
|
"aoColumns": [
|
|
null,
|
|
{ "fnRender": function (a) {
|
|
if ( a.aData.length != 5 )
|
|
{
|
|
mTmp = false;
|
|
}
|
|
return a.aData[a.iDataColumn];
|
|
} },
|
|
null,
|
|
null,
|
|
null
|
|
]
|
|
} );
|
|
},
|
|
function () { return mTmp; }
|
|
);
|
|
|
|
oTest.fnWaitTest(
|
|
"Passed back data is put into the DOM",
|
|
function () {
|
|
oSession.fnRestore();
|
|
oTable = $('#example').dataTable( {
|
|
"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
|
|
"aoColumns": [
|
|
null,
|
|
{ "fnRender": function (a) {
|
|
return 'unittest';
|
|
} },
|
|
null,
|
|
null,
|
|
null
|
|
]
|
|
} );
|
|
},
|
|
function () { return $('#example tbody tr:eq(0) td:eq(1)').html() == 'unittest'; }
|
|
);
|
|
|
|
oTest.fnWaitTest(
|
|
"Passed back data is put into the DOM",
|
|
function () {
|
|
oSession.fnRestore();
|
|
oTable = $('#example').dataTable( {
|
|
"sAjaxSource": "../../../examples/ajax/sources/arrays.txt",
|
|
"aoColumns": [
|
|
null,
|
|
null,
|
|
{ "fnRender": function (a) {
|
|
return 'unittest1';
|
|
} },
|
|
{ "fnRender": function (a) {
|
|
return 'unittest2';
|
|
} },
|
|
null
|
|
]
|
|
} );
|
|
},
|
|
function () {
|
|
var bReturn =
|
|
$('#example tbody tr:eq(0) td:eq(2)').html() == 'unittest1' &&
|
|
$('#example tbody tr:eq(0) td:eq(3)').html() == 'unittest2';
|
|
return bReturn; }
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
oTest.fnComplete();
|
|
} ); |