使用 jQuery dataTables - 2 四種數據來源

四種數據來源

對於 dataTables 來說,支持四種表格數據來源。

最爲基本的就是來源於網頁,網頁被瀏覽器解析爲 DOM 對象,在 dataTables 中稱爲  DOM 來源。

 
$(document).ready(function() { 

    $('#example').dataTable(); 

} );

第二種數據來源爲數組, JavaScript 中的數組,通過在初始化對象中傳遞一個名爲 aaData 的數組,同樣可以提供表格數據,前綴 aa 說明這是一個數組的數組,外層的數組表示表格的行,每一行同樣是一個數組。

 
$(document).ready(function() { 

    $('#demo').html( '<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>' ); 

    $('#example').dataTable( { 

        "aaData": [ 

            /* Reduced data set */

            [ "Trident", "Internet Explorer 4.0", "Win 95+", 4, "X" ], 

            [ "Trident", "Internet Explorer 5.0", "Win 95+", 5, "C" ], 

            [ "Trident", "Internet Explorer 5.5", "Win 95+", 5.5, "A" ], 

            [ "Trident", "Internet Explorer 6.0", "Win 98+", 6, "A" ], 

            [ "Trident", "Internet Explorer 7.0", "Win XP SP2+", 7, "A" ], 

            [ "Gecko", "Firefox 1.5", "Win 98+ / OSX.2+", 1.8, "A" ], 

            [ "Gecko", "Firefox 2", "Win 98+ / OSX.2+", 1.8, "A" ], 

            [ "Gecko", "Firefox 3", "Win 2k+ / OSX.3+", 1.9, "A" ], 

            [ "Webkit", "Safari 1.2", "OSX.3", 125.5, "A" ], 

            [ "Webkit", "Safari 1.3", "OSX.3", 312.8, "A" ], 

            [ "Webkit", "Safari 2.0", "OSX.4+", 419.3, "A" ], 

            [ "Webkit", "Safari 3.0", "OSX.4+", 522.1, "A" ] 

        ], 

        "aoColumns": [ 

            { "sTitle": "Engine" }, 

            { "sTitle": "Browser" }, 

            { "sTitle": "Platform" }, 

            { "sTitle": "Version", "sClass": "center" }, 

            { 

                "sTitle": "Grade", 

                "sClass": "center", 

                "fnRender": function(obj) { 

                    var sReturn = obj.aData[ obj.iDataColumn ]; 

                    if ( sReturn == "A" ) { 

                        sReturn = "<b>A</b>"; 

                    } 

                    return sReturn; 

                } 

            } 

        ] 

    } );     

} );

aoColumns 參數用來定義表格的列,這是一個數組,其中的每一個對象用來定義一列。

對於每一個列對象:

sTitle 定義列的標題

sClass 定義列的樣式

fnRender 函數用來渲染列,這個函數將會傳遞一個參數對象,這個參數對象的 iDataColumn 屬性表示當前的列索引,aData 表示當前的行數組。函數返回的結果將被填充到單元格中。

當然了,對於表示行的數組來說,長度應該是相同的。如果某一行數據缺失或者提供了過多地數據的話,就會得到一個警告。

使用 jQuery dataTables - 2 四種數據來源_www.fengfly.com

第三種數據來源是 AJAX,也就是說可以向服務器發一個請求來獲得數據。

在初始化參數對象中,通過 sAjaxSource 的屬性傳遞請求的地址,bProcessing 表示是否需要顯示一個工作中的提示。

在 JSON 方式返回的數據中,需要一個名爲 aaData 的屬性來提供實際的數據。

 
$(document).ready(function() { 

    $('#example').dataTable( { 

        "bProcessing": true, 

        "sAjaxSource": '../examples_support/json_source.txt'

    } ); 

} );

其中 json_source.txt 就是 JSON 數據,其中定義了一個名爲 aaData 的屬性。這個文件可以在下載的壓縮包中找到,在 examples\examples_support 文件夾中。

最後一種數據來源是服務器,對於大量的數據來說,你可能希望在服務器端完成所有的操作,分頁、排序、過濾等等。dataTable 可以通過服務器完成這些功能,甚至其他的服務器,像  Google Gears 或者 Adobe Air,這樣的話,dataTables 就是一個顯示數據和提供操作事件的前端模塊。

 
$(document).ready(function() { 

    $('#example').dataTable( { 

        "bProcessing": true, 

        "bServerSide": true, 

        "sAjaxSource": "../examples_support/server_processing.php"

    } ); 

} );

對於服務器來說,可以通過請求參數來獲得當前的操作信息。

類型 名稱 說明
int iDisplayStart 顯示的起始索引
int iDisplayLength 顯示的行數
int iColumns 顯示的列數 
string sSearch 全局搜索字段 
boolean bEscapeRegex 全局搜索是否正則
boolean bSortable_(int) 表示一列是否在客戶端被標誌位可排序
boolean bSearchable_(int) 表示一列是否在客戶端被標誌位可搜索
string sSearch_(int) 個別列的搜索
boolean bEscapeRegex_(int) 個別列是否使用正則搜索
int iSortingCols  排序的列數 
int iSortCol_(int) 被排序的列
string sSortDir_(int) 排序的方向 "desc" 或者 "asc". 
string sEcho  DataTables 用來生成的信息


這篇文章介紹了在 C# 中結合 LINQ 使用 DataTables 進行服務端處理的經驗 jQuery DataTables Plugin Meets C#

服務器應該返回如下的 JSON 格式數據

類型 名稱 說明
int iTotalRecords 實際的行數
int iTotalDisplayRecords 過濾之後,實際的行數。
string sEcho 來自客戶端 sEcho 的沒有變化的複製品,
string sColumns 可選,以逗號分隔的列名,    
array array mixed aaData 數組的數組,表格中的實際數據。    


服務器返回的數據示例如下:

 

    "sEcho": 3, 

    "iTotalRecords": 57, 

    "iTotalDisplayRecords": 57, 

    "aaData": [ 

        [ 

            "Gecko", 

            "Firefox 1.0", 

            "Win 98+ / OSX.2+", 

            "1.7", 

            "A"

        ], 

        [ 

            "Gecko", 

            "Firefox 1.5", 

            "Win 98+ / OSX.2+", 

            "1.8", 

            "A"

        ], 

        ... 

    ]  

}

 

原文來自:雨楓技術教程網 http://www.fengfly.com
原文網址:http://www.fengfly.com/plus/view-196740-1.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章