I SignalR
bin mit Daten in eine Tabelle schieben, wenn sie erstellt wird.Tabelle Sortierung nach Daten mit SignalR Einfügen
in der Tabelle Meine Sortierung nicht zu funktionieren scheint.
Das ist meine Jquery-Code:
$(function() {
var chat = $.connection.runnerHub;
chat.client.refreshTable = function (table) {
$('table:last').after('<table id="' + table + '"><thead><tr><td>' + table + '</td></tr></thead><tbody></table>')
};
chat.client.refreshSubTable = function (table, categoryName) {
if ($('#' + table + ' tbody tr').length > 0) {
$('#' + table + ' tbody tr:last').after("<tr><td><a href='/Forum/" + table + "/" + categoryName + "' >" + categoryName + "</a></td></tr>")
} else {
$('#' + table + ' tbody').append("<tr><td><a href='/Forum/" + table + "/" + categoryName + "' >" + categoryName + "</a></td></tr>")
}
sortTable($('#' + table), 'asc');
};
$.connection.hub.start().done(function() {
});
});
function sortTable(table, order) {
var asc = order === 'asc',
tbody = table.find('tbody');
tbody.find('tr').sort(function(a, b) {
if (asc) {
return $('td:first', a).text().localeCompare($('td:first', b).text());
} else {
return $('td:first', b).text().localeCompare($('td:first', a).text());
}
}).appendTo(tbody);
}
$('.add').click(function() {
$('#Class > tbody').append("<tr><td><a href=/Forum/Class/Run>run</a></td></tr>")
sortTable($('#Class'), 'asc');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="Class">
<thead>
<tr>
<td>Class</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<a href="/Forum/Class/Druid">Druid</a>
</td>
</tr>
<tr>
<td>
<a href="/Forum/Class/Hunter">Hunter</a>
</td>
</tr>
<tr>
<td>
<a href="/Forum/Class/Paladin">Paladin</a>
</td>
</tr>
<tr>
<td>
<a href="/Forum/Class/Mage">Mage</a>
</td>
</tr>
<tr>
<td>
<a href="/Forum/Class/Priest">Priest</a>
</td>
</tr>
<tr>
<td>
<a href="/Forum/Class/Rogue">Rogue</a>
</td>
</tr>
<tr>
<td>
<a href="/Forum/Class/Shaman">Shaman</a>
</td>
</tr>
<tr>
<td>
<a href="/Forum/Class/Warlock">Warlock</a>
</td>
</tr>
<tr>
<td>
<a href="/Forum/Class/Warrior">Warrior</a>
</td>
</tr>
</tbody>
</table>
<button class="add"> add </button>
Wenn ich meinen Weg debuggen die JQuery dachte, es fügt die tr
aber und es ruft die sortTable()
aber es nicht, dass es sort alphabetisch.
Ich kann nicht scheinen, um das Problem zu finden, und das ist, warum ich hoffe jemand kann mir helfen.
Die 'if ... else ...' in 'refreshSubTable' ist nicht erforderlich. Beide Zeilen ('$ ('#' + table + 'tbody tr: last'). Nach (...)' und '$ ('#' + table + 'tbody'). Append (...)') fügt nach der letzten Zeile in der Tabelle eine neue Zeile hinzu. Dies funktioniert auch, wenn überhaupt keine Zeilen vorhanden sind. – Andreas
Danke, aber immer noch nicht das Problem lösen –
Das Skript sollte funktionieren ([fiddle] (https://jsfiddle.net/92supaw1/)). Können Sie etwas Markup hinzufügen? Irgendwelche Fehler in der Konsole? – Andreas