datatable.js - 在fnDraw()函数上重载数据

时间:2014-08-11 04:54:39

标签: jquery datatable

从服务器端获取数据,然后将数据添加到datatable。但是在调用fndraw()函数时。 ajax没有再次加载,oSettings_aData为空。

调用$(“#clientTable”)。dataTable()。fnDraw();但是点击按钮时表中没有加载数据。

这是我填充数据表的功能。

function fillGrid() {
        alert("enterened fillgrid");
        $.ajax(
                {
                    type: 'POST',
                    url: 'BehindCode/client.aspx/fillgrid',

                    cache: false,
                    dataType: "json",
                    contentType: "application/json; charset=utf-8",
                    beforeSend: function () {



                        $('#gridLoadingDiv').attr('style', 'display:block');
                    },
                    complete: function () {


                        $('#gridLoadingDiv').attr('style', 'display:none');
                    },
                    data: "{}",

                    success: function (data) {
                        //data = data.d;
                        data = JSON.parse(data.d).Data;
                        //  alert(data);

                        alert("entered success");

                        $("#clientTable").DataTable(
                            {

                                "stateSave": true,
                                "searching": true,
                                "processing": true,
                                "data": data,
                                // "ordering": false,
                                "order": [[2, "asc"]],

                                "columns": [
                                              { "data": null,
                                                  "defaultContent": ' <input type="checkbox" onclick="return selectOne();" />',
                                                  "sorting": false
                                              },
                                              { "data": "CLIENT_ID",
                                                  "visible": false
                                              },
                                              { "data": "CLIENT_NAME" },

                                              { "data": null,
                                                  "defaultContent": ' <a ><img id="editimg" src="images/edit.png" width="15px" alt="edit" onclick="callEdit(this);" /></a>',
                                                  "sorting": false
                                              }
                                            ],

                                "fnDrawCallback": function (oSettings) {
                                    alert(oSettings);
                                    alert("draw called");

                                }
                            });






                    }
                });


                              }

1 个答案:

答案 0 :(得分:0)

我可以为您提供一些基本的代码,希望对您有所帮助。

我的数据表:

 var ETable = $('#myDataTable').dataTable({

       //bProcessing,bWidth etc comes above 
        "sAjaxSource": "../Employee/AjaxHandler",
        "fnServerData": function (sSource, aoData, fnCallback) {

        //Inside i have ajax call under click function like this 

                                      $.ajax({
           //on click i am deleting a row on success i am reloading table 
                                            "success": function (data) {
                                                ETable.fnClearTable(0);
                                                ETable.fnDraw();
                                            }
                                        });

我的加载Ajax调用

$.ajax({

//under success i call fnCallback(data)

});

这里的诀窍是,在您清除表格后调用fnDraw时,ajax call on load会触发并提供最新信息,并通过fnCallback填写表格。