JQuery表分类器使用ajax和动态的thead和tbody部分



我正试图使用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");

最新更新