J'ai créé ce violon et cela fonctionne bien selon mes exigences: Fiddle
Cependant, lorsque j'utilise la même chose dans mon application, j'obtiens une erreur dans la console du navigateur disant Impossible de lire la propriété 'aDataSort' de undefined
Dans mon application, le javascript lit quelque chose comme ci-dessous: J'ai vérifié la sortie du contrôleur ... cela fonctionne bien et est également imprimé sur la console.
$(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
la source
la source
Réponses:
Il est important que votre THEAD ne soit pas vide dans le tableau car dataTable vous oblige à spécifier le nombre de colonnes des données attendues. Selon vos données, il devrait être
la source
"Sort":false
, puis il a pu afficher la liste dans l'ordre décroissant provenant du contrôleurModel.OrderByDescending(x=>x.Action==0).ThenBy(x=>x.Action)
.<thead>
doit contenir un<tr>
, puis<th>
s<thead>
mais vous devez définir les colonnes dans votre initiation DataTable () comme ceci: datatables .net / reference / option / columns.dataÉgalement eu ce problème, ce tableau était hors de portée:
la source
Pour moi, le bogue était dans DataTables lui-même; Le code de tri dans DataTables 1.10.9 ne vérifiera pas les limites; donc si vous utilisez quelque chose comme
avec une table vide, il n'y a pas de ligne idx 1 -> cette exception garantit. Cela s'est produit lorsque les données de la table étaient extraites de manière asynchrone. Initialement, lors du chargement de la page, la table dataTable est initialisée sans données. Il doit être mis à jour plus tard dès que les données de résultat sont récupérées.
Ma solution:
la source
J'ai rencontré le même problème, les changements suivants ont résolu mon problème.
le
aoColumns
tableau décrit la largeur de chaque colonne et sessortable
propriétés.la source
Dans mon cas, j'avais
Où ça aurait dû être
Remarque: dans mon cas, j'ai dû vider la table car j'avais des données que je voulais supprimer avant d'insérer de nouvelles données.
Je pensais juste à partager là où cela «pourrait» aider quelqu'un dans le futur!
la source
J'ai eu ce problème et c'était parce qu'un autre script supprimait toutes les tables et les recréait, mais ma table n'était pas recréée. J'ai passé des années sur ce problème avant de remarquer que mon tableau n'était même pas visible sur la page. Pouvez-vous voir votre table avant d'initialiser DataTables?
Essentiellement, l'autre script faisait:
Et cela aurait dû faire:
la source
Vous devez remplacer les guillemets simples par des guillemets
[']
doubles à["]
cause de l'analysesi vous utilisez l' attribut d' ordre des données sur la table, utilisez-le comme ceci
data-order='[[1, "asc"]]'
la source
Dans mon cas, j'ai résolu le problème en établissant un numéro de colonne valide lors de l'application de la
order
propriété à l'intérieur du script où vous configurez la table de données.la source