【问题标题】:Javascript generated table sortingJavascript 生成的表格排序
【发布时间】:2011-11-17 15:44:13
【问题描述】:

我编写了一个 JS 代码来生成一个表格并将其插入我页面上的一个 div 中。我想使用来自here 的排序表插件。 这是我到现在为止的代码:

  TableHtml = ''
  TableHtml += '<div id="table_wrapper" class="scrollable"><table style="width:900px" id="mytable" class="sortable tabular">'
  TableHtml += '<thead><tr>'
  TableHtml += '<th class="labels"><span class="nowrap">Date</span></th>'
  TableHtml += '<th class="labels"><span class="nowrap">Client</span></th>'
  TableHtml += '<th class="labels"><span class="nowrap">Pass</span></th>'
  TableHtml += '<th class="labels"><span class="nowrap">Objet</span></th>'
  TableHtml += '<th class="labels"><span class="nowrap">Panne</span></th>'
  TableHtml += '<th class="labels"><span class="nowrap">Cause</span></th>'
  TableHtml += '<th><div id="headerbg"><span class="nowrap">Action</span></div></th>'
  TableHtml += '<TH class="sorttable_nosort scrollbarCol"></TH>'
  TableHtml += '</tr></thead><tbody>'

  var trclass = '';
  var d=0               
  if(!rsDetail.bof) {
    rsDetail.MoveFirst()
    while(!rsDetail.eof) {
      detAvis  = rsDetail.fields(0).value;
      detDate = rsDetail.fields(2).value;
      detClient = rsDetail.fields(4).value
      detPass = rsDetail.fields(5).value
      detObjet = rsDetail.fields(9).value
      detPanne = rsDetail.fields(10).value
      detCause = rsDetail.fields(11).value
      detAction = rsDetail.fields(12).value

        //filling up he rows
      if (d%2){
      trclass='d1'
      }
      else{
      trclass='d2'
      }
      TableHtml += '<tr id="' + detAvis + '" class="' + trclass + '" onclick="Select(' + detAvis + '); showDetails(' + detAvis + ');">'
      TableHtml += '<td class="td1">' + detDate + '</td>'
      TableHtml += '<td class="td2">' + detClient + '</td>'
      TableHtml += '<td class="td3">' + detPass + '</td>'
      TableHtml += '<td class="td4">' + detObjet + '</td>'
      TableHtml += '<td class="td5">' + detPanne + '</td>'
      TableHtml += '<td class="td6">' + detCause + '</td>'
      TableHtml += '<td class="td7">' + detAction + '</td>'
      TableHtml += '</tr>'        
      d++
      rsDetail.MoveNext()
    }
  }   
  TableHtml += '</tbody></table></div>'

  rsDetail.close()
  document.getElementById('DetailTable').innerHTML = TableHtml;

还有我的参考:

<script type="text/javascript" src="js/sorttable.js"></script>

参考来自here

表格是可滚动的,但不知何故无法排序。知道问题可能是什么吗?
我已经尝试将sortable 类归因于另一个不是在同一页面上生成的 JS 表并且它可以工作...

【问题讨论】:

    标签: javascript sorttable.js


    【解决方案1】:

    你需要调用makeSortable:

    sorttable.makeSortable(document.getElementById('mytable'));
    

    请参阅此处来自 scott W 的评论(搜索 makeSortable): http://www.kryogenix.org/days/2007/04/07/sorttable-v2-making-your-tables-even-more-sortable

    这里还提到了 makeSortable: http://www.kryogenix.org/bugs/sorttable/ajax-tables.html

    【讨论】:

      【解决方案2】:

      这可能是因为 sorttable.js 在插入表格之前已链接/执行。 您可以尝试在准备好的文档上加载 js 文件或使用 jquery。

      【讨论】:

      • 您的意思是在文档上加载 sottable.js 文件准备好了吗?我该怎么做?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 2013-06-14
      • 2015-02-01
      • 1970-01-01
      • 2018-04-11
      相关资源
      最近更新 更多