代码之家  ›  专栏  ›  技术社区  ›  majkinetor

JQuery表排序器Ajax排序

  •  1
  • majkinetor  · 技术社区  · 14 年前

    我将使用tableSorter jquery插件显示数据库表。我有大量的记录,所以我必须重新分页。如果只有一页数据,我可以允许表排序器进行客户机排序,但是,当我有更多页时,我需要使用ORDERBY sql语句指定排序顺序,以便所有页都受到影响。

    我尝试使用startSort事件,但没有成功。首先,我修改了tableSorter代码以获取参数sortList。然后我在startSort事件中使用ajax调用来调用MVC处理程序,该处理程序正在解析sortList数组以构造有效的sql顺序。我还遇到未触发事件(使用shift指定多个排序列时)或事件触发2次的问题。

    有人知道一些插件或者知道实现这个的方法吗?

    我试过的东西的简短代码片段是这样的;

    function OnAjaxSuccess() {
    
    
         SortList = typeof SortList == "undefined" ? [] : SortList
         $("table").tablesorter
            ({
                ...
         sortList = SortList
            });
    
         $("table").bind("sortStart", function(event, newSortList) 
                             {   
                                if (PageCount = 1) return;
                                SortList = newSortList; 
                                var url = '/Report/Sort/' + SortList.toString();   
                                $("#Report").load(url, null, OnAjaxSuccess );                            
                             })
    

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   rnaud    14 年前

    你可以使用这个插件 http://www.datatables.net/ ,非常轻,可以分页,并且可以通过正确的服务器端处理直接连接到数据库。