jquery datatables: dodanie dodatkowej kolumny

Scenarius

Ja używam datatables (@version 1.9.4) po raz pierwszy wyświetla dane użytkownikowi. Udało mi się pobrać dane przez ajax i powiązać je z danymi.

Teraz chcę dodać dodatkowe kolumny, aby umożliwić użytkownikowi przetwarzanie rekordów. Dla uproszczenia celem jest dodanie przycisku z modułem obsługi onclick, który pobiera dane z rekordu „klikniętego”.

W moim planie powiązałbym element json odpowiadający rekordowi „klikniętemu” z programem obsługi onclick.

Do teraz, jeśli dodam dodatkowyTH dla kolumny akcji do DOM występuje błąd z kodu tabeli danych:

Requested unknown parameter '5' from data source for row 0

Pytani

Jak ustawić niestandardowe kolumny? Jak wypełnić zawartość HTML?

Oto moja aktualna konfiguracja.

HTML

<table id="tableCities">
    <thead>
        <tr>
            <th>country</th>
            <th>zip</th>
            <th>city</th>
            <th>district code</th>
            <th>district description</th>
            <th>actions</th>
        </tr>
    </thead>
    <tbody></tbody>
</table>

JavaScript

$('#tableCities').dataTable({
    "bPaginate": true,
    "bLengthChange": false,
    "bFilter": true,
    "bSort": true,
    "bInfo": false,
    "bAutoWidth": true
    , "bJQueryUI": true
    , "bProcessing": true
    , "bServerSide": true
    , "sAjaxSource": "../biz/GetCitiesByZip.asp?t=" + t
});

Przykładowy wynik Jsona

{
    "aaData":
    [
        [
            "IT",
            "10030",
            "VILLAREGGIA",
            "TO",
            "Torino"
        ],
        [
            "IT",
            "10030",
            "VISCHE",
            "TO",
            "Torino"
        ]
    ],
    "iTotalRecords": 2,
    "iTotalDisplayRecords": 2,
    "iDisplayStart": 0,
    "iDisplayLength": 2
}

Edytowa

Daniel jest w porządku. Rozwiązaniem jest skonfigurowanie niestandardowej kolumny waoColumnDefs, określającmData imRender nieruchomości. W szczególnościmRender pozwala zdefiniować niestandardowy HTML i JavaScript.

/* inside datatable initialization */
, "aoColumnDefs": [
   {
        "aTargets": [5],
        "mData": null,
        "mRender": function (data, type, full) {
            return '<a href="#" onclick="alert(\''+ full[0] +'\');">Process</a>';
        }
    }
 ]

questionAnswers(3)

yourAnswerToTheQuestion