9

I want to populate DataTable through a button click. Initially the dataTable should be empty:

var searchText = $("#textBox").val();

    Table = $("#customerTable").dataTable({
        data:[],
        "columns": [
                    {"data": "Id"   },
                    { "data": "Name" },
                    { "data": "City" },
                    { "data": "Country" }
        ]        
        //"serverSide": true
    });

and the button click :

$("#SearchButton").on("click", function (event) {

$.ajax({
            url: "/LoadCustomers",
            type: "post"
        });
Table.rows.add(result).draw();
});

1 Answer 1

14

Solved !!!

My table looks like this :

Table = $("#customerTable").DataTable({
    data:[],
    columns: [
                { "data": "CompanyId"  },
                { "data": "CompanyName" },
                { "data": "City" },
                { "data": "Country" }
    ],
    rowCallback: function (row, data) {},
    filter: false,
    info: false,
    ordering: false,
    processing: true,
    retrieve: true        
});

Button Click handler:

$("#customerSearchButton").on("click", function (event) {
   $.ajax({
            url: "",
            type: "post",
            data: { searchText: searchText }
        }).done(function (result) {
            Table.clear().draw();
            Table.rows.add(result).draw();
            }).fail(function (jqXHR, textStatus, errorThrown) { 
                  // needs to implement if it fails
            });
}
Sign up to request clarification or add additional context in comments.

3 Comments

Table is undefined is showing under the Ajax response
@CyberAbhay define on the top of javascript code var Table;
I User version 1.10.20 and throw this :ExtJS:197 Uncaught TypeError: myDataTable.clear is not a function at Object.success (ExtJS:197) at c (VM15 jquery.min.js:2) at Object.fireWith [as resolveWith] (VM15 jquery.min.js:2) at l (VM15 jquery.min.js:2) at XMLHttpRequest.<anonymous> (VM15 jquery.min.js:2)

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.