2010-03-29 107 views
1

我使用tableSorter jquery插件顯示數據庫表。我有大量的記錄,所以我必須分頁。如果只有一頁數據,我可以允許tablesorter進行客戶端排序,但是當我有更多的頁面時,我需要使用ORDER BY sql語句指定排序順序,以便所有頁面都受到影響。JQuery tablesorter Ajax排序

我嘗試使用startSort事件沒有太大的成功。首先,我修改tableSorter代碼以獲取作爲參數sortList。然後我在startSort事件中使用ajax調用來調用正在解析sortList數組構造有效的sql排序的MVC處理程序。我還遇到了未被解僱的事件(當我使用班次指定多個排序列)或事件觸發兩次時的問題。

有沒有人知道一些插件或知道一種方法來實現呢?

我試過的東西的短代碼片段看起來像這樣;

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

您可以使用插件http://www.datatables.net/,非常輕,可以分頁,並且可以通過正確的服務器端處理直接連接到數據庫。

+0

我想喜歡那個插件,我真的這樣做。然而,當他們說「一個函數調用來初始化表所需的全部內容」並且同一頁上的示例具有一組配置元素時,它們會讓我大失所望。 – Powerlord 2010-03-29 14:24:17

+0

你沒有看正確的樣品。請參閱以這種方式工作的「零配置」頁面。 – majkinetor 2010-03-29 17:14:05

+0

$( '#例子')數據表。({ \t 「bJQueryUI」:真的, \t 「sPaginationType」: 「full_numbers」 }); 這些配置元素是可選的,它可能不是把它們放在主頁上的最聰明的東西,但仍然是。 – rnaud 2010-03-29 17:23:30