在DataTable 1.10中加载ajax调用响应数据

时间:2014-11-20 20:21:09

标签: jquery datatable jquery-datatables

我正在实现搜索功能,我在页面上有两个部分。第一部分是搜索的表单和第一个隐藏的第二个搜索结果表。所以我试图从表中的搜索结果加载数据并显示它。所以我的问题是:

  1. 在哪里放置DataTable启动代码?文档就绪或AJAX成功吗?
  2. 如何从控制器向DataTable发送响应?
  3. 代码段

    function onSearchClick() {
      $.ajax({
        type: ...
        url: ...
        success: function(response) {
          console.log(response); //Need to send this response to DataTable
        }
      });
    }
    

2 个答案:

答案 0 :(得分:0)

你不会说你正在使用哪个版本的数据表,但对于1.9 ......

使用$(document).ready将数据表初始化代码放在iDeferLoading中,以防止在页面加载时填充表格:

var oTable = $('#your-table').dataTable({
        'bServerSide': true,
        'sAjaxSource': 'your-url-that-returns-json',
        //  Pass custom param to server
        "fnServerParams": function (aoData) {
            aoData.push({ "name": "my-filter", "value": $('my-selector').val() });
        },
        'bProcessing': true,
        'iDeferLoading': 1,
        'aoColumns': [
         ...
        ]
    });

您的点击事件只需要调用fnDraw()来填充数据表:

function onSearchClick() {
    oTable.fnDraw();
}

将搜索参数传递给服务器端代码涉及使用fnServerParams。您的服务器端代码必须从请求中获取这些值,并在返回过滤后的数据之前在查询中使用它们:

var searchParam = Request.QueryString["my-filter"]

答案 1 :(得分:0)

我们可以使用

rows.add()

向表中添加多行。只有参数是DataTable可用于呈现行的数据。