首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript生成的表排序

Javascript生成的表排序
EN

Stack Overflow用户
提问于 2011-11-17 23:44:13
回答 2查看 265关注 0票数 0

我编写了一段JS代码,它生成表并将其插入到页面的div中。我想使用来自here的排序表插件。以下是我到目前为止所拥有的代码:

代码语言:javascript
复制
  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;

以及我在脑海中的参考:

代码语言:javascript
复制
<script type="text/javascript" src="js/sorttable.js"></script>

参考资料来自here

表是scrollabale的,但不知何故保持不可排序。你知道问题出在哪里吗?

我尝试将sortable类归属于另一个表,该表不是在同一页面上生成的JS,它可以工作……

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-17 23:58:33

您需要调用makeSortable:

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2011-11-17 23:50:03

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8170010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档