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]
    }],
  });
});

2voto

Hitesh Sahu Punkte 37527

Ich hatte das gleiche Problem, aber ich habe die Tabelle dynamisch generiert. In meinem Fall fehlten die und Tags.

Hier ist mein Code-Schnipsel, falls es jemandem hilft

   //Tabelle String
   var strDiv = '';

   //Kopfzeilen hinzufügen
   var strTable = ' ';

  //Daten hinzufügen
  $.each(data, function (key, GetCustomerFeedbackBE) {
                            strTable = strTable + '';
                        });

//Ende des tbody hinzufügen
 strTable = strTable + 'KundennameKundenbezeichnungKunden-E-MailKundenorganisationKundenabteilungKundenkontaktnummerKundenhandynummerClusternameProduktnameInstallierte VersionAnforderungenHerausforderungenZukünftige ErweiterungKommentare  ' + GetCustomerFeedbackBE.StrCustName + '' + GetCustomerFeedbackBE.StrCustDesignation + '' + GetCustomerFeedbackBE.StrCustEmail + '' + GetCustomerFeedbackBE.StrCustOrganization + '' + GetCustomerFeedbackBE.StrCustDepartment + '' + GetCustomerFeedbackBE.StrCustContactNo + '' + GetCustomerFeedbackBE.StrCustMobile + '' + GetCustomerFeedbackBE.StrClusterName + '' + GetCustomerFeedbackBE.StrProductName + '' + GetCustomerFeedbackBE.StrInstalledVersion + '' + GetCustomerFeedbackBE.StrRequirements + '' + GetCustomerFeedbackBE.StrChallenges + '' + GetCustomerFeedbackBE.StrFutureExpansion + '' + GetCustomerFeedbackBE.StrComments + '';

//Tabelle in ein div einfügen                 
   $('#divCFB_D').html(strDiv);
   $('#tbl').html(strTable);

    //Zum Schluss Exportbuttons hinzufügen 
   $('#tbl').DataTable({
                            dom: 'Bfrtip',
                            buttons: [
                                'copy', 'csv', 'excel', 'pdf', 'print'
                            ]
                        });

2voto

Ege Bayrak Punkte 1119

Zusätzlich zu inkonsistenten und fehlenden Zahlen kann auch ein fehlendes Element im Teil der DataTable-Skriptspalten dieses Problem verursachen. Nachdem ich das korrigiert hatte, funktionierte meine DataTables-Suchleiste.

Ich spreche von diesem Teil:

"columns": [
  null,
  .
  .
  .
  null
           ],

Ich hatte mit diesem Fehler zu kämpfen, bis mir gesagt wurde, dass dieser Teil ein "null" weniger hatte als meine gesamte Thead-Anzahl.

2voto

hsobhy Punkte 1453

In meinem Fall, und unter Verwendung von ASP.NET GridView, UpdatePanel und DropDownList (mit Chosen-Plugin, bei dem ich den Wert mit einer JavaScript-Zeile auf Null zurücksetze), habe ich diesen Fehler erhalten und habe tagelang alles versucht, ohne Hoffnung. Das Problem war, dass der Code meines Dropdowns im Code-Behind wie folgt war und wenn ich zweimal einen Wert auswähle, um seine Aktion auf ausgewählte Rasterzeilen anzuwenden, erhalte ich diesen Fehler. Ich dachte tagelang, es handle sich um ein Javascript-Problem (wieder einmal in meinem Fall) und schließlich war die Lösung, dem Dropdown-Wert beim Update-Prozess null zu geben:

  private void ddlTasks_SelectedIndexChanged(object sender, System.EventArgs e)
  {
     if (ddlTasks.SelectedValue != 0) {
        ChangeStatus(ddlTasks.SelectedValue);
        ddlTasks.SelectedValue = "0"; //// **Das hat mein Problem behoben**
     }

     dvItemsGrid.DataSource = CreateDatasource();
     dvItemsGrid.DataBind();
     dvItemsGrid.UseAccessibleHeader = true;
     dvItemsGrid.HeaderRow.TableSection = TableRowSection.TableHeader;

  }

Das war mein Fehler:

     $('#<%= DropDownList.ClientID%>').val('0').trigger("chosen:updated").chosen();

1voto

Baim Wrong Punkte 468

In meinem Fall ist die Ursache dieses Fehlers, dass ich 2 Tabellen habe, die denselben ID-Namen mit unterschiedlicher Tabellenstruktur haben, wegen meiner Gewohnheit, den Tabellencode zu kopieren und einzufügen. Bitte stellen Sie sicher, dass Sie für jede Tabelle eine andere ID haben.

            Überschrift 1
            Überschrift 2
            Überschrift 3
            Überschrift 4
            Überschrift 5

            Daten-1
            Daten-2
            Daten-3
            Daten-4
            Daten-5

            Überschrift 1
            Überschrift 2
            Überschrift 3

            Daten-1
            Daten-2
            Daten-3

0voto

William Punkte 724

Sie müssen Ihre Zeilen in für die Spaltenüberschriften und für die Zeilen einwickeln. Stellen Sie außerdem sicher, dass Sie die gleiche Anzahl von Spaltenüberschriften haben wie für die

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