JQuery Datatable - Placing a custom loading GIF instead of default "Processing" text
Asked Answered
S

3

15

I'm using the current version of JQuery Datatable. I have implemented server-side processing. Is there any way to place our own Loading GIF instead of the dafault text "Processing"?

Here's my HTML code :

<table id="table" class="table table-striped table-bordered table-hover display nowrap" cellspacing="0" width="100%">
  <thead>
    <tr bgcolor="#76b900">
      <th> Request #</th>
      <th>Description</th>
      <th>Created By</th>
    </tr>
  </thead>
</table>

Here's my JS code :

$('#table').DataTable({
    "dom": '<"top"lB>rt<"bottom"ip>', // DataTable element position


    "lengthMenu": [
      [10, 25, 50, 100, 500],
      [10, 25, 50, 100, 500]
    ], // page length options
    "pageLength": 25, // default page length
    "pagingType": "full_numbers", // pagination related buttons

    "ordering": true,
    "order": [
      [0, "desc"]
    ],

    "scrollX": true, // enables horizontal scrolling      
    "filter": true,
    "responsive": true,
    "serverSide": true,
    "info": true, // control table information display field
    "processing": true,
    "stateSave": true, //restore table state on page reload,

    "ajax": {
      "url": Helper.baseUrl() + "Search/LoadData",
      "type": "POST",
      "datatype": "json",
      "data": function(d) {
        d.searchParams = searchFilters();
      },
    },

    "columns": //Binds values fetched from the database to their respective columns
      [{
      "data": "RequestNo",


    }, {
      "data": "Description"
    }, {
      "data": "CreatedBy"
    }],
  });

UPDATE

This is my updated JS code for Processing :

"language": {
            "infoFiltered":"",
            "processing": "<img src='~/Content/images/loadingNew.gif' />"
        },

This didn't work. Am I including the path in wrong technique?

Stella answered 1/1, 2017 at 10:37 Comment(4)
Fiddle doesn't seem to workFigure
Actually I have just placed a sample of my code. (As I'm fetching data from server)That's the reason it's not showing dataStella
Anyways removed it.Stella
@Mr.SK , why my answer doesn't cut it?Lyndonlyndsay
L
10

Take a look at this DEMO I have made.

  var table = $('#changeLogTable').DataTable({
        "bLengthChange": false,
        "bPaginate": true,
        "bInfo": false,
        "autoWidth": false, 
        "order": [[0, "desc"]],
        "processing": true,
        "serverSide": true,
        "sAjaxSource": "data.js",
         oLanguage: {sProcessing: "<div id='loader'></div>"}
    }); 

})

Lyndonlyndsay answered 1/1, 2017 at 13:54 Comment(5)
I didn't work. Then I tried using the current version syntax. I have included the updated code in my question above. Kndly check it.Stella
Do you get any error in console? @Mr.SK , can you create a fiddle?Lyndonlyndsay
No. That was the first thing I checked. No errors in consoleStella
Try to give it the full path of the image. @Mr.SKLyndonlyndsay
Awesome! Worked perfectly. Thanks!Haag
C
11

Just in case if someone wants to have fontawesome icon in that place the following can be used:

"language": 
{          
"processing": "<i class='fa fa-refresh fa-spin'></i>",
}
Cephalic answered 28/8, 2018 at 18:1 Comment(0)
L
10

Take a look at this DEMO I have made.

  var table = $('#changeLogTable').DataTable({
        "bLengthChange": false,
        "bPaginate": true,
        "bInfo": false,
        "autoWidth": false, 
        "order": [[0, "desc"]],
        "processing": true,
        "serverSide": true,
        "sAjaxSource": "data.js",
         oLanguage: {sProcessing: "<div id='loader'></div>"}
    }); 

})

Lyndonlyndsay answered 1/1, 2017 at 13:54 Comment(5)
I didn't work. Then I tried using the current version syntax. I have included the updated code in my question above. Kndly check it.Stella
Do you get any error in console? @Mr.SK , can you create a fiddle?Lyndonlyndsay
No. That was the first thing I checked. No errors in consoleStella
Try to give it the full path of the image. @Mr.SKLyndonlyndsay
Awesome! Worked perfectly. Thanks!Haag
S
4

SOLVED :-

Initially I had included path in a wrong manner.
Using @Offir Pe'er answer I got it working (with the only modification currently in my code is that I've used current version i.e. 1.10 syntax).

This is how my code looks now :-

"language": 
{          
"processing": "<img style='width:50px; height:50px;' src='Content/images/loadingNew.gif' />",
}

So I just had to remove the '~' from my previously updated code.

Here's my directory structure :

-Root Folder

  • Content

    • Images

      • loadingNew.gif
  • Scripts

    • MyJSFile.js
Stella answered 12/1, 2017 at 9:32 Comment(1)
Glad I could helpLyndonlyndsay

© 2022 - 2024 — McMap. All rights reserved.