DataTables with different number of columns

DataTables with different number of columns

tvbishantvbishan Posts: 2Questions: 2Answers: 0
edited October 2014 in Free community support

I am loading data using ajax and generating column names dynamically in my DataTable. My DataTable has different number of columns, depending on the selection by user.(There is a drop-down list).

For example, there are 2 options in drop-down list as Southern Province and Northern Province. Southern Province table has 4 columns and Northern Province table has 6 columns.

Scenario 1

First user select Southern Province which has 4 columns. Then it generates table without no errors, But after that if user select Northern Province which has 6 columns, table not generate and js console print error as below.

Uncaught TypeError: Cannot read property 'style' of undefined jquery.dataTables.js:3828

Scenario 2

First user select Northern Province which has 6 columns. Then it generates table without no errors, But after that if user select Southern Province which has 4 columns, table not generate and js console print error as below.

Uncaught TypeError: Cannot read property 'mData' of undefined jquery.dataTables.js:6122

But if both table has same number of columns, both tables generate without errors.

How can i solve this ?

Here is the JS Code

js jQuery(document) .ready( function() { $('#province-list').change( function() { var prov = $(this).val(); if (prov == "sp") { make_SP(); } else if (prov == "np") { make_NP(); } }); function make_SP() { $("#dataTables-res_item") .dataTable( { "bDestroy" : true, "bProcessing" : false, "bServerSide" : true, "sAjaxSource" : "/province_list_view?p_name=sp", "aoColumns" : [ { "mData" : "result_date", "sTitle" : "Result Date" }, { "mData" : "result_day", "sTitle" : "Result Day" }, { "mData" : "draw_number", "sTitle" : "Draw Number" }, { "mData" : "draw_time", "sTitle" : "Draw Time" } ], "order" : [ [ 0, "desc" ] ] }); }; function make_NP() { $("#dataTables-res_item") .dataTable( { "bDestroy" : true, "bProcessing" : false, "bServerSide" : true, "sAjaxSource" : "/province_list_view?p_name=np", "aoColumns" : [ { "mData" : "result_date", "sTitle" : "Result Date" }, { "mData" : "result_day", "sTitle" : "Result Day" }, { "mData" : "draw_number", "sTitle" : "Draw Number" }, { "mData" : "draw_time", "sTitle" : "Draw Time" }, { "mData" : "draw_place", "sTitle" : "Draw Place" }, { "mData" : "draw_person", "sTitle" : "Agent" } ], "order" : [ [ 0, "desc" ] ] }); }; });

This discussion has been closed.