我正试图使用jquery tablesorter插件将一些表排序添加到使用dojo的Rally应用程序中,为如何连接表排序程序的更新回调而苦苦挣扎。
我有这样的html(ad和tbody是分开的,因为它们是动态生成的,即列的数量事先不知道):
<table id='myTable' class='tablesorter'>
<thead id='sort-head'></thead>
<tbody id='sort-body'></tbody>
</table>
表分类器初始化在这里
<script type="text/javascript">
function onLoad() {
var appCustom = new ReleaseScopeChange();
appCustom.display(dojo.body());
}
rally.addOnLoad(onLoad);
$(document).ready(function(){$("#myTable").tablesorter();});
</script>
代码更新主体
dojo.byId("sort-head").innerHTML = headresults;
dojo.byId("sort-body").innerHTML = bodyresults;
$('#myTable').trigger("update");
现在,排序根本就没有设置好。如果我添加一个静态表,我可以完美地进行排序,所以我假设它与ajax请求和更新触发器之间的时间有关。
我已经看了很多关于这个问题的其他答案,我真的不确定遗漏了什么。
如果您使用的是原始的表分类器,最好只是删除并替换整个表,而不是更新thead&tbody html单独;然后在新表上重新初始化表分类器。
或者你可以禁用表分类器,然后重新初始化它
如果您正在使用我的表分类器叉,请使用updateAll
方法而不是update
。
dojo.byId("sort-head").innerHTML = headresults;
dojo.byId("sort-body").innerHTML = bodyresults;
$('#myTable').trigger("updateAll");