jQuery控件 ---DataTables 学习

http://blog.csdn.net/Dracotianlong/article/details/8013234


这俩天做一个需求,需要对表的增删改等操作,于是就选择了jQuery的控件 DataTables。

1、Datatables简介

      1.1说明:

          DataTables是一个jQuery的表格插件。这是一个高度灵活的工具,依据的基础逐步增强,这将增加先进的互动控制,支持任何HTML表格。主要特点:

  • 自动分页处理
  • 即时表格数据过滤
  • 数据排序以及数据类型自动检测
  • 自动处理列宽度
  • 可通过CSS定制样式
  • 支持隐藏列
  • 易用
  • 可扩展性和灵活性
  • 国际化
  • 动态创建表格
  • 免费的

2、如何使用:

            在做后台的时候并没有美工和前端工程师来配合你做页面,为了显示数据并有一定的美感,我们可以使用jQuery的DataTables插件来帮助我们完成任务

            1、DataTables的默认配置

[javascript]  view plain copy print ?
  1.  $(document).ready(function() {  
  2. $('#example').dataTable();  
  3. } );  

            2、DataTables的一些基础属性配置

[javascript]  view plain copy print ?
  1.                    "bPaginate"true//翻页功能  
  2. "bLengthChange"true//改变每页显示数据数量  
  3. "bFilter"true//过滤功能  
  4. "bSort"false//排序功能  
  5. "bInfo"true,//页脚信息  
  6. "bAutoWidth"true//自动宽度  

                3、数据排序

[javascript]  view plain copy print ?
  1. $(document).ready(function() {  
  2. $('#example').dataTable( {  
  3. "aaSorting": [  
  4. [ 4, "desc" ]  
  5. ]  
  6. } );  
  7. } );  

从第0列开始,以第4列倒序排列

                 4、隐藏某些列

[javascript]  view plain copy print ?
  1.     $(document).ready(function() {  
  2. $('#example').dataTable( {  
  3. "aoColumnDefs": [  
  4. "bSearchable"false"bVisible"false"aTargets": [ 2 ] },  
  5. "bVisible"false"aTargets": [ 3 ] }  
  6. ] } );  
  7. } );  

                  5、国际化

[javascript]  view plain copy print ?
  1. $(document).ready(function() {  
  2. $('#example').dataTable( {  
  3. "oLanguage": {  
  4. "sLengthMenu""每页显示 _MENU_ 条记录",  
  5. "sZeroRecords""抱歉, 没有找到",  
  6. "sInfo""从 _START_ 到 _END_ /共 _TOTAL_ 条数据",  
  7. "sInfoEmpty""没有数据",  
  8. "sInfoFiltered""(从 _MAX_ 条数据中检索)",  
  9. "oPaginate": {  
  10. "sFirst""首页",  
  11. "sPrevious""前一页",  
  12. "sNext""后一页",  
  13. "sLast""尾页"  
  14. },  
  15. "sZeroRecords""没有检索到数据",  
  16. "sProcessing""<img src='./loading.gif' />"  
  17. }  
  18. } );  
  19. } );  

6、排序功能:

[javascript]  view plain copy print ?
  1. $(document).ready(function() {  
  2. $('#example').dataTable( {  
  3. "aoColumns": [  
  4. null,  
  5. "asSorting": [ "asc" ] },  
  6. "asSorting": [ "desc""asc""asc" ] },  
  7. "asSorting": [ ] },  
  8. "asSorting": [ ] }  
  9. ]  
  10. } );  
  11. } );  


7、数据获取支持4种:如下

[html]  view plain copy print ?
  1. •DOM   文档数据  
  2. •Javascript array  js数组  
  3. •Ajax source     Ajax请求数据  
  4. •Server side processing  服务器端数据  

3、案例说明:

通过JS数组获取的

[javascript]  view plain copy print ?
  1. var oTable;  
  2. /*课程数据*/  
  3. function courseData(data) {  
  4.     var courseArrayData= new Array();  
  5.     var result = eval(data);  
  6.     col=result.length;  
  7.      
  8.     for(var j=0; j<col ;j++)  
  9.     {  
  10.         var meetInfoArr= new Array();  
  11.         var meetInfoObj = result[j];  
  12.         meetInfoArr.push(meetInfoObj['meetinginfoid']);   
  13.         meetInfoArr.push(meetInfoObj['meetingName']);   
  14.         meetInfoArr.push(meetInfoObj['meetingcontent']);  
  15.         meetInfoArr.push(meetInfoObj['meetinghost']);  
  16.         meetInfoArr.push(meetInfoObj['meetingcreatetime']);  
  17.         meetInfoArr.push("<img alt='编辑' title='编辑' src='images/edit.png' border='0' style='padding-left: 5px;cursor: pointer' onclick='editCourseShow("+meetInfoObj['meetinginfoid']+")'>");  
  18.         meetInfoArr.push("<img alt='设置课程图片' title='设置课程图片' src='images/setting.png' border='0' style='padding-left: 5px;cursor: pointer' onclick='setCourseImage("+meetInfoObj['meetinginfoid']+")'>");  
  19.         courseArrayData.push(meetInfoArr);  
  20.     }  
  21.     $('#courseWin').html('<table cellpadding="0" cellspacing="0" border="0" class="display" id="example"></table>');  
  22.     oTable = $('#example').dataTable({  
  23.         "bJQueryUI"true,  
  24.         "sScrollY": 200,  
  25.         "sPaginationType""full_numbers",  
  26.         "oLanguage": {  
  27.             "sLengthMenu""每页显示 _MENU_ 条记录",  
  28.             "sZeroRecords""抱歉, 没有找到",  
  29.             "sInfo""从 _START_ 到 _END_ /共 _TOTAL_ 条数据",  
  30.             "sInfoEmpty""没有数据",  
  31.             "sInfoFiltered""(从 _MAX_ 条数据中检索)",  
  32.             "oPaginate": {  
  33.             "sFirst""首页",  
  34.             "sPrevious""前一页",  
  35.             "sNext""后一页",  
  36.             "sLast""尾页"  
  37.         },  
  38.         "sZeroRecords""没有检索到数据"  
  39.         },  
  40.         "aaSorting": [  
  41.             [ 4, "desc" ]  
  42.          ],  
  43.         "aaData":courseArrayData,  
  44.         "bLengthChange"true,  
  45.         "aoColumns": [  
  46.         {  
  47.             "sTitle""meetingid",  
  48.             "bVisible":false  
  49.         },  
  50.         {  
  51.             "sTitle""课程名称",  
  52.             "sClass""center"  
  53.         },  
  54.         {  
  55.             "sTitle""课程描述"  
  56.         },  
  57.         {  
  58.             "sTitle""课程老师",  
  59.             "sClass""center"  
  60.         },    
  61.         {  
  62.             "sTitle""课程创建时间",  
  63.             "sClass""center"  
  64.         },  
  65.         {  
  66.             "sTitle""操作",  
  67.             "sClass""wp10 taleft",   
  68.             "bSortable"false  
  69.         },  
  70.         {  
  71.             "sTitle""设置课程图片",  
  72.             "sClass""wp10 taleft",   
  73.             "bSortable"false  
  74.         }]  
  75.     });  
  76.     $('#example tr').dblclick( function() {$(this).toggleClass('row_selected');});  
  77. }  



[javascript]  view plain copy print ?
  1. /*获取当前选择行的HTML对象,包括 被隐藏的列*/  
  2. function fnGetSelected(oTableLocal){  
  3.    var aReturn = new Array();  
  4.    var aTrs = oTableLocal.fnGetNodes();  
  5.    for(var i =0 ; i < aTrs.length ;i++){  
  6.        if($(aTrs[i]).hasClass('row_selected')){  
  7.            aReturn.push(oTableLocal.fnGetData(aTrs[i]));  
  8.        }  
  9.    }  
  10.    return aReturn;  
  11. }  

[javascript]  view plain copy print ?
  1. //获取所有的datatables数据  
  2. funciton getAllDatatableData(oTableLocal){  
  3.    var aReturn =new Array();  
  4.    var aTrs = oTableLocal.fnGetNodes();  
  5.    for(var i=0; i<aTrs.length;i++){  
  6.       aReturn.push(oTableLocal.fnGetData(aTrs[i]));  
  7.    }  
  8.    return aReturn;  
  9. }  

你可能感兴趣的:(jquery)