Динамическое создание столбцов с помощью Datatables Jquery - PullRequest
9 голосов
/ 09 октября 2011

Я использую Datatables с server_processing для получения данных, главная проблема в том, что я не хочу указывать имя столбца в html (<th width="25" id ="th1">id</th>), я хочу динамически создавать столбцы при получении данных с помощью ajax.

Мой код:

$('#table').dataTable( {

    "bProcessing": true,
    "bServerSide": true,
    "sAjaxSource": "server_processing.php?db="+pid+"&table="+id+"", //pid is the name of database and id the name of the table
     "bJQueryUI": true,
    "sPaginationType": "full_numbers"

} );             

1 Ответ

5 голосов
/ 09 декабря 2011

"Хотя DataTables могут получать информацию о таблице непосредственно из DOM, вы можете дать конкретные инструкции DataTables для каждого отдельного столбца. Это можно сделать с помощью параметра aoColumnDefs или aoColumns и предоставленной информации об объекте.для каждого столбца. " - http://datatables.net/usage/columns

Что-то вроде:

html

<table class="display" id="table"></table>

js

$("#table").dataTable({
    bJQueryUI:true,
    aoColumns:[
        {mDataProp:"foo",sTitle:"Foo Title"},
        {mDataProp:"bar",sTitle:"Bar Title"}
    ],
    fnServerData: function( sUrl, data, fnCallback){
        $.get('data.php', function(res) {
            fnCallback({  // process results to match table format
                "sEcho":config.sEcho,
                "iTotalRecords":res.data.total || res.data.count,
                "iTotalDisplayRecords":res.data.count || res.data.total,
                "aaData":res.data.list
            })
        });
    }
})

Где data.php -

{
    data:{
        total:200,
        count:3,
        list:[
            {foo:"Foo 1",bar:"Bar 1"},
            {foo:"Foo 2",bar:"Bar 2"},
            {foo:"Foo 3",bar:"Bar 3"},
        ]
    }
}

Здесь также есть хорошая сводка по настройке: http://datatables.net/usage/options#aaData

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...