Refresh button for ajax

Refresh button for ajax

luisrortegaluisrortega Posts: 79Questions: 6Answers: 1
edited January 2014 in DataTables 1.9
How can I add a "Refresh" button to TableTools for a table that uses ajax to retrieve data? something like...

[code]
"aButtons": ["refresh",
"copy","csv","pdf"]
[/code]

Replies

  • girishmrgirishmr Posts: 137Questions: 0Answers: 0
    edited January 2014
    Ideal would be to add a button and bind a click event. On click call one of the following fnDraw / fnReloadAjax / fnStandingRedraw as the case may be.

    You can check this link for adding your custom elements like buttons / links
    http://datatables.net/release-datatables/examples/advanced_init/dom_toolbar.html
  • allanallan Posts: 63,498Questions: 1Answers: 10,471 Site admin
    Define a custom button with "fnClick" - http://datatables.net/extras/tabletools/button_options#fnClick (example in the documentation) which calls the reload function ( fnReloadAjax plug-in for 1.9- or `ajax.reload()` in 1.10+).

    Allan
  • luisrortegaluisrortega Posts: 79Questions: 6Answers: 1
    That worked!

    I had to copy the following code from a previous example thou...

    [code]

    $.fn.dataTableExt.oApi.fnReloadAjax = function ( oSettings, sNewSource, fnCallback, bStandingRedraw )
    {
    // DataTables 1.10 compatibility - if 1.10 then versionCheck exists.
    // 1.10s API has ajax reloading built in, so we use those abilities
    // directly.
    if ( $.fn.dataTable.versionCheck ) {
    var api = new $.fn.dataTable.Api( oSettings );

    if ( sNewSource ) {
    api.ajax.url( sNewSource ).load( fnCallback, !bStandingRedraw );
    }
    else {
    api.ajax.reload( fnCallback, !bStandingRedraw );
    }
    return;
    }

    if ( sNewSource !== undefined && sNewSource !== null ) {
    oSettings.sAjaxSource = sNewSource;
    }

    // Server-side processing should just call fnDraw
    if ( oSettings.oFeatures.bServerSide ) {
    this.fnDraw();
    return;
    }

    this.oApi._fnProcessingDisplay( oSettings, true );
    var that = this;
    var iStart = oSettings._iDisplayStart;
    var aData = [];

    this.oApi._fnServerParams( oSettings, aData );

    oSettings.fnServerData.call( oSettings.oInstance, oSettings.sAjaxSource, aData, function(json) {
    /* Clear the old information from the table */
    that.oApi._fnClearTable( oSettings );

    /* Got the data - add it to the table */
    var aData = (oSettings.sAjaxDataProp !== "") ?
    that.oApi._fnGetObjectDataFn( oSettings.sAjaxDataProp )( json ) : json;

    for ( var i=0 ; i
This discussion has been closed.