Tôi đang sử dụng SignalR
để đẩy dữ liệu vào bảng khi được tạo.Sắp xếp bảng sau khi chèn dữ liệu với SignalR
Sắp xếp của tôi trong bảng dường như không hoạt động.
Đây là Mã jquery của tôi:
$(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>
Khi tôi gỡ lỗi cách tôi nghĩ Jquery, Nó cho biết thêm tr
nhưng và nó gọi là sortTable()
nhưng nó không sắp xếp nó chữ cái.
Tôi dường như không thể tìm ra vấn đề, và đó là lý do tại sao tôi hy vọng ai đó có thể giúp tôi.
Lệnh 'if ... else ...' trong 'refreshSubTable' là không cần thiết. Cả hai dòng ('$ ('#' + table + 'tbody tr: last'). After (...)' và '$ ('#' + table + 'tbody'). Chắp thêm (...)') sẽ thêm hàng mới sau hàng cuối cùng trong bảng. Điều này cũng sẽ hoạt động nếu không có hàng nào cả. – Andreas
Cảm ơn nhưng vẫn không giải quyết được sự cố –
Tập lệnh sẽ hoạt động ([fiddle] (https://jsfiddle.net/92supaw1/)). Bạn có thể thêm một số đánh dấu? Bất kỳ lỗi nào trong bảng điều khiển? – Andreas