分页拖放Tablesorter插件

时间:2012-07-11 05:16:19

标签: jquery datatables paging tablesorter

我仅限于使用tablesorter功能,因为在父行等下隐藏子行。所以我使用“tablesorter mod”功能http://www.pengoworks.com/workshop/jquery/tablesorter/tablesorter.htm

当我尝试添加dragtable.js并尝试拖放时,只有当前页面才能正确重新排列。在其他页面上,只有标题被移位,导致数据和标题不匹配。是否有工作可以同时进行分页,拖放和tablesorter功能。我只想拖放来移动所有页面的列,包括显示的页面。


<script type="text/javascript" src="jquery-1.2.3.js"></script>
    <script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.tablesorter.mod.js"></script>
<script type="text/javascript" src="jquery.tablesorter.pager.js"></script>
<script type="text/javascript" src="jquery.tablesorter.collapsible.js"></script>
<script type="text/javascript"  src="jquery.dataTables.js"></script>
<script type="text/javascript"  src="ColReorder.js"></script>
<script type="text/javascript"  src="dragtable.js"></script>
<script type="text/javascript">
        $(document).ready(
            function (){
                $(".tablesorter")
                    /*
                     * td.collapsible = collapse to the first table row and show +/-
                     * td.collapsible_alt = anchor to order number
                     */
                    .collapsible("td.collapsible", {
                        collapse: true
                    })
                    .tablesorter({
                    // set default sort column
                    sortList: [[4,0]],
                    // don't sort by first column
                    headers: {0: {sorter: false}}
                    // set the widgets being used - zebra stripping
                    , widgets: ['zebra']
                    , onRenderHeader: function (){
                        this.wrapInner("<span></span>");
                    }
                    , debug: false
                })
                .tablesorterPager({container: $("#pager"), positionFixed: false})
                    ;

                    // Expand/Collapse all
                        $('a#ShowButton').click(function(){
                            var linkLabel = this.innerHTML;
                            switch(linkLabel) 
                            {
                            case "Show History":
                                $("td.collapsible a").removeClass("expanded").click();
                                this.innerHTML= "Hide History"
                                break;
                            case "Hide History":
                                $("td.collapsible a").addClass("expanded").click();
                                this.innerHTML= "Show History"
                                break;
                            }
                        return false;
                        }); 

                        var oTable = $('#example').dataTable( {
                        "sDom": 'Rlfrtip'
                        } );


            }

        );
</script>

1 个答案:

答案 0 :(得分:0)

尝试使用在页面更改/过滤时触发的事件:

$("#example").on("draw", function() {
    someFunction();
});

在那里你可以运行拖放功能。 另一种选择是在每次拖放后保存列布局,然后当表格触发绘制时,重新创建该布局。我不确定你使用的插件是如何工作的,但我认为你可以使用draw事件并让它工作。