407 Stimmen

Datatables: Kann die Eigenschaft 'mData' von 'undefined' nicht lesen.

Ich habe ein Problem mit Datatables. Ich habe auch diesen Link durchgelesen, der keine Ergebnisse lieferte. Ich habe alle erforderlichen Voraussetzungen eingefügt, wo ich Daten direkt in das DOM parsen.

Skript

$(document).ready(function() {
  $('.viewCentricPage .teamCentric').dataTable({
    "bJQueryUI": true,
    "sPaginationType": "full_numbers",
    "bPaginate": false,
    "bFilter": true,
    "bSort": true,
    "aaSorting": [
      [1, "asc"]
    ],
    "aoColumnDefs": [{
      "bSortable": false,
      "aTargets": [0]
    }, {
      "bSortable": true,
      "aTargets": [1]
    }, {
      "bSortable": false,
      "aTargets": [2]
    }],
  });
});

6voto

Asad Punkte 326

In meinem Fall trat dieser Fehler auf, wenn ich die Tabelle ohne Kopfzeile verwende

                       Beispiel

3voto

Paul Wright Punkte 394

Für mich war das Problem etwas anders als in den oben gegebenen Antworten. Für mich war die HTML-Markierung in Ordnung, aber eine meiner Spalten im JavaScript fehlte und stimmte nicht mit dem HTML überein.

das heißt.

                                Id
                                Name
                                Erstellt am
                                Aktualisiert am
                                Zähler

                                    {{ $company->id }}
                                    {{ $company->name }}
                                    {{ $company->created_at }}
                                    {{ $company->updated_at }}
                                    {{ $company->count }}

                            @foreach($companies as $company)

                            @endforeach

Mein Skript:-

        $(document).ready(function() {
            $('#companies-index-table').DataTable({
                serverSide: true,
                processing: true,
                responsive: true,
                    ajax: "{{ route('admincompanies.datatables') }}",
                columns: [
                    { name: 'id' },
                    { name: 'name' },
                    { name: 'created_at' },
                    { name: 'updated_at' },     <-- Diese Zeile hat mir gefehlt, daher stimmten meine Spalten nicht mit dem thead-Bereich überein.
                    { name: 'count', orderable: false },
                ],
            });
        });

3voto

Peter Szalay Punkte 366

Ich hatte eine dynamisch generierte, aber schlecht geformte Tabelle mit einem Tippfehler. Ich habe versehentlich ein -Tag in ein anderes kopiert. Die Anzahl meiner Spalten stimmte überein. Ich hatte und Tags. Alles stimmte überein, bis auf diesen kleinen Fehler, den ich eine Weile lang nicht bemerkt habe, weil meine Spalte viele Link- und Bild-Tags enthielt.

3voto

smac2020 Punkte 6595

Dies hat mich verrückt gemacht - wie man erfolgreich eine DataTable in einer .NET MVC-Ansicht rendert. Das hat funktioniert:

 **@model List
 @{
    ViewData["Title"] = "Index";
}
 NEW VIEW Index

@foreach (var element in Model)
{

}

   ID
    Vorname
    Nachname 

    @Html.DisplayFor(m => element.ID)
    @Html.DisplayFor(m => element.FirstName)
    @Html.DisplayFor(m => element.LastName)

**

Skript in JS-Datei:

**$(document).ready(function () {
    $('#example').DataTable();
});**

3voto

Bazil Punkte 349

Für diejenigen, die mit Webforms arbeiten und GridView verwenden:

Die Antwort von Moses ist völlig korrekt. Da wir die Tabelle generieren, wird das thead-Tag nicht standardmäßig generiert. Um das Problem zu lösen, fügen Sie [IhrGridViewID].HeaderRow.TableSection = TableRowSection.TableHeader in Ihrem Backend hinzu, unterhalb des Aufrufs der Methode DataBind() (falls Sie diese verwenden). Diese Konfiguration übernimmt den Wert von HeaderText des Feldes in Ihrem GridView als Wert des th-Tags, den es innerhalb des thead generiert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X