Ich habe diese Geige erstellt und sie funktioniert gut gemäß meinen Anforderungen: Geige
Wenn ich jedoch dasselbe in meiner Anwendung verwende, wird in der Browserkonsole die Fehlermeldung angezeigt, dass die Eigenschaft 'aDataSort' von undefined nicht gelesen werden kann
In meiner Anwendung lautet das Javascript wie folgt: Ich habe die Controller-Ausgabe überprüft ... es funktioniert gut und wird auch auf der Konsole gedruckt.
$(document).ready(function() {
$.getJSON("three.htm", function(data) {
// console.log("loadDataTable >> "+JSON.stringify(data));
})
.fail(function( jqxhr, textStatus, error ) {
var err = textStatus + ', ' + error;
alert(err);
console.log( "Request Failed: " + err);
})
.success(function(data){
loadDataTable(data);
});
function loadDataTable(data){
$("#recentSubscribers").dataTable().fnDestroy();
var oTable = $('#recentSubscribers').dataTable({
"aaData" : JSON.parse(data.subscribers),
"processing": true,
"bPaginate": false,
"bFilter": false,
"bSort": false,
"bInfo": false,
"aoColumnDefs": [{
"sTitle": "Subscriber ID",
"aTargets": [0]
}, {
"sTitle": "Install Location",
"aTargets": [1]
}, {
"sTitle": "Subscriber Name",
"aTargets": [2]
}, {
"aTargets": [0],
"mRender": function (data, type, full) {
return '<a style="text-decoration:none;" href="#" class="abc">' + data + '</a>';
}
}],
"aoColumns": [{
"mData": "code"
}, {
"mData": "acctNum"
}, {
"mData": "name"
}]
});
}
})
javascript
jquery
jquery-datatables
Swateek
quelle
quelle
Antworten:
Es ist wichtig, dass Ihr THEAD in der Tabelle nicht leer ist. Als dataTable müssen Sie die Anzahl der Spalten der erwarteten Daten angeben. Nach Ihren Angaben sollte es sein
quelle
"Sort":false
, und dann konnte es die Liste in absteigender Reihenfolge anzeigen, die vom Controller als kamModel.OrderByDescending(x=>x.Action==0).ThenBy(x=>x.Action)
.<thead>
muss ein enthalten<tr>
, dann<th>
s<thead>
aber Sie müssen die Spalten in Ihrer DataTable () -Initiation wie folgt definieren: datatables .net / reference / option / columns.dataHatte auch dieses Problem, Dieses Array war außerhalb des Bereichs:
quelle
Für mich war der Fehler in DataTables selbst; Der Code zum Sortieren in DataTables 1.10.9 sucht nicht nach Grenzen. also wenn du so etwas benutzt
Bei einer leeren Tabelle gibt es keine Zeilen-IDX 1 -> diese Ausnahme stellt sicher. Dies geschah, als die Daten für die Tabelle asynchron abgerufen wurden. Beim Laden der Seite wird die dataTable zunächst ohne Daten initialisiert. Es sollte später aktualisiert werden, sobald die Ergebnisdaten abgerufen wurden.
Meine Lösung:
quelle
Ich hatte das gleiche Problem, die folgenden Änderungen lösten mein Problem.
Das
aoColumns
Array beschreibt die Breite jeder Spalte und ihresortable
Eigenschaften.quelle
In meinem Fall hatte ich
Wo es hätte sein sollen
Hinweis: In meinem Fall musste ich die Tabelle leeren, da ich Daten hatte, die ich wollte, bevor ich neue Daten einfügte.
Ich dachte nur daran zu teilen, wo es jemandem in Zukunft "helfen" könnte!
quelle
Ich hatte dieses Problem und es lag daran, dass ein anderes Skript alle Tabellen löschte und neu erstellte, aber meine Tabelle wurde nicht neu erstellt. Ich habe lange mit diesem Thema verbracht, bevor ich bemerkte, dass mein Tisch auf der Seite nicht einmal sichtbar war. Können Sie Ihre Tabelle sehen, bevor Sie DataTables initialisieren?
Im Wesentlichen machte das andere Skript:
Und es hätte tun sollen:
quelle
Sie müssen wegen der Analyse einfache Anführungszeichen
[']
in doppelte Anführungszeichen["]
ändernWenn Sie das Datenreihenfolgenattribut für die Tabelle verwenden, verwenden Sie es wie folgt
data-order='[[1, "asc"]]'
quelle
In meinem Fall habe ich das Problem gelöst, indem ich beim Anwenden der
order
Eigenschaft im Skript, in dem Sie die Datentabelle konfigurieren , eine gültige Spaltennummer festgelegt habe .quelle