对表中的列排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对表中的列排序相关的知识,希望对你有一定的参考价值。

Use to sort table columns by clicking on the table headings
  1. <table width='100%' id='tblNotifications' style='display: none;' class='TFtable'><thead id='notitblhead'>
  2. <tr>
  3. <th id='thDate' onclick='sortNotifications(this);' title='Click to sort by Date' style='width: 100px;'>Date</th>
  4. <th id='thType' onclick='sortNotifications(this);' title='Click to sort by Type'>Type</th>
  5. <th id='thDoc' onclick='sortNotifications(this);' title='Click to sort by Document Type'>Doc Type</th>
  6. <th id='thStatus' onclick='sortNotifications(this);' title='Click to sort by Status'>Status</th>
  7. <th id='thProcess' onclick='sortNotifications(this);' title='Click to sort by Process'>Process</th>
  8. <th style='width: 50px;'>Edit</th>
  9. </tr>
  10. </thead>
  11. <tbody id='notifications'>
  12. </tbody>
  13. <tfoot></tfoot>
  14. </table>
  15.  
  16.  
  17. var notinum = 1;
  18.  
  19. function sortNotifications(ele) {
  20. notinum *= -1;
  21. var sibling = prevAll(ele);
  22. var n = sibling.length;
  23. var fldtype = (ele.id == 'thDate') ? 'd' : ''; //use this line if a column is a date field where the year part is not the start of the string
  24. sortTableRows(notinum,n, fldtype);
  25. }
  26.  
  27. function prevAll(element) {
  28. var result = [];
  29.  
  30. while (element = element.previousElementSibling)
  31. result.push(element);
  32. return result;
  33. }
  34.  
  35. function sortTableRows(f,n, fld=''){
  36. var rows = $('#tblNotifications tbody tr').get();
  37.  
  38. rows.sort(function(a, b) {
  39.  
  40. var A = getVal(a, fld);
  41. var B = getVal(b, fld);
  42.  
  43. if(A < B) {
  44. return -1*f;
  45. }
  46. if(A > B) {
  47. return 1*f;
  48. }
  49. return 0;
  50. });
  51.  
  52. function getVal(elm,fld=''){
  53. var v = $(elm).children('td').eq(n).text().toUpperCase();
  54. if(fld !=''){
  55. v = getDateSortVal(v);
  56. }
  57. if($.isNumeric(v)){
  58. v = parseInt(v,10);
  59. }
  60. return v;
  61. }
  62.  
  63. function getDateSortVal(str){
  64. var sortdate = str.split("/");
  65. return sortdate[2]+'/'+sortdate[0]+'/'+sortdate[1];
  66. }
  67.  
  68. $.each(rows, function(index, row) {
  69. $('#tblNotifications').children('tbody').append(row);
  70. });
  71. }

以上是关于对表中的列排序的主要内容,如果未能解决你的问题,请参考以下文章

我可以对表中的列进行逻辑重新排序吗?

使用Angularjs重新排序html表中的列

如何在sqlite中对表中的行进行排名?

基于不同表的行值对表中的列值求和

PyQt5:启用对表中的特定列进行排序

如何根据值 B 对 sql 中的列进行排序,其中字段中的值格式为 A-B-C。我