datatable 添加全选功能

1 <table class=‘data-table table table-bordered table-striped table-hover‘ style=‘margin-bottom:0;‘>
2 </table>
<script>
var rowCkArr=new Array();
var ckAll = 0;
    $(document).ready(function(){
        var table = setDataTable($(".data-table"));

        //过滤
        $(‘.data-table‘).append($(‘<tfoot><tr></tr></tfoot>‘));
        $(‘.data-table thead th‘).each( function () {
            var title = $(‘.data-table thead th‘).eq( $(this).index() ).text();
            th = $(‘<th></th>‘);
            $(‘.data-table tfoot tr‘).append(th);
            th.html( ‘<input type="text" placeholder="‘+title+‘" style="width:‘+$(this).width()+‘px;" />‘ );
        } );
        //插入全选checkbox
        $(".data-table").find(‘thead tr th:first-child‘)
        .prepend(‘<input type="checkbox" value="" id="chk_all" style="padding:3px;margin-right:5px;" />‘);

        $("#chk_all").click(function(){
            if(ckAll==0){
                $(‘.data-table tr td .rowCkbox‘).each(function(){
                    if($(this).attr("ckIF")==0){
                        $(this).attr("checked",‘true‘);
                        $(this).attr("ckIF",1);
                        rowCkArr.push($(this).attr(‘dataTD‘));
                    }
                });
                $(‘#chk_all‘).attr("checked",‘true‘);
                ckAll = 1;
            }else if(ckAll==1){
                $(‘.data-table tr td .rowCkbox‘).each(function(){
                    $(this).removeAttr("checked");
                    $(this).attr("ckIF",0);
                });
                rowCkArr = new Array() ;
                ckAll = 0;
                $(‘#chk_all‘).removeAttr("checked");
            }
            $(this).val(ckAll);
            alert("rowCkArr="+rowCkArr);
        });        

        $("tfoot input").each(function(i){
            $(this).on(‘keyup change‘, function () {
                table.columns(i).search( this.value );
            } );
            $(this).keydown(function(e){
                if(e.keyCode==13){
                    table.columns(i).draw();
                }
            } );
        });

        //表格隔行变色
        $(‘.data-table tbody‘).on(‘click‘, ‘tr‘, function () {
            if ( $(this).hasClass(‘selected‘) ) {
                $(this).removeClass(‘selected‘);
            }
            else {
                table.$(‘tr.selected‘).removeClass(‘selected‘);
                $(this).addClass(‘selected‘);
            }
        });

    });

    //筛选表格
    this.setDataTable = function(selector) {
        return selector.DataTable({
            aLengthMenu: [5,10]
            ,iDisplayLength:5
            ,sDom: "<‘row-fluid‘<‘span6‘l><‘span6 text-right‘f>r>t<‘row-fluid‘<‘span6‘i><‘span6 text-right‘p>>"
            ,sPaginationType: "bootstrap"
            ,oLanguage: {
                sProcessing:   "处理中...",
                sLengthMenu:   "显示_MENU_ 项结果",
                sZeroRecords:  "没有匹配结果",
                sInfo:         "显示第_START_ 至_END_ 项结果,共_TOTAL_ 项",
                sInfoEmpty:    "显示第0 至0 项结果,共0 项",
                sInfoFiltered: "(由_MAX_项结果过滤)",
                sSearch:       "搜索:",
                oPaginate: {"sNext": "下一页","sPrevious": "上一页"}
            }
            ,sAjaxSource: "admin_toShowEntBonus"
                ,bServerSide:true
               ,bFilter: true //过滤功能
               ,bSort: false  //标题
            ,fnServerData : function(sSource, aoData, fnCallback){
                 $.ajax( {
                        "type": "get",
                        "contentType": "application/json",
                        "url": sSource,
                        "dataType": "json",
                        "data": { ‘aoData‘: JSON.stringify(aoData) }, // 以json格式传递
                        "success": function(resp) {
                            fnCallback(resp);
                        }
                    });
            }
            ,aoColumns: [
                           { "mData": "id",‘title‘:‘ID‘,"bVisible":false}
                           ,{ "mData": "id",‘title‘:‘全选‘,
                               "mRender":function(data,type,row){
                                   $("#rowCkbox"+data).change(function(){

                                        if($(this).attr("ckIF")==1){
                                            $(this).removeAttr("checked");
                                            for(var i=0;i<rowCkArr.length;i++){
                                                if(rowCkArr[i]==$(this).attr(‘dataTD‘)){
                                                    temp = rowCkArr[i];
                                                    rowCkArr[i] = rowCkArr[0];
                                                    rowCkArr[0] = temp;
                                                    rowCkArr.shift();
                                                }
                                            }
                                            $(‘#chk_all‘).removeAttr("checked");
                                            ckAll = 0;
                                            $(this).attr("ckIF",0);
                                        }else{
                                            $(this).attr("checked",‘true‘);
                                            $(this).attr("ckIF",1);
                                            rowCkArr.push($(this).attr(‘dataTD‘));
                                            var ckFlag = true;
                                            $(‘.data-table tr td .rowCkbox‘).each(function(){
                                                if($(this).attr("ckIF")==0){
                                                    ckFlag = false;
                                                }
                                            });
                                            if(ckFlag){
                                                $(‘#chk_all‘).attr("checked",‘true‘);
                                                ckAll=1;
                                            }

                                        }
                                        $("#chk_all").val(ckAll);
                                        alert("rowCkArr="+rowCkArr);

                                    });
                                    return ‘<input type="checkbox" ckIF = 0 class="rowCkbox" id="rowCkbox‘+data+‘" dataTD=‘+data+‘ />‘;
                                  }}
                          ,{ "mData": "orderEntName",‘title‘:‘企业名称‘}
                          ,{ "mData": "orderCode",‘title‘:‘订单编号‘}
                          ,{ "mData": "orderGenerateDate",‘title‘:‘下单时间‘}
                          ,{ "mData": "perVal",‘title‘:‘返利面值(¥)‘}
                      ] 

        });
    };

</script>
时间: 2024-11-25 18:49:54

datatable 添加全选功能的相关文章

ASP.NET给DataGrid,Repeater等添加全选批量删除等功能(转)

很多情况下,在管理或者查看列表的时候我们需要很需要“全选”这个功能,这在ASP.NET中是非常容易实现的,下面我就将演示一点小代码实现这一功能.  实现全选的还是js的一个小函数:   function  CheckAll(e,itemname){    var aa=document.getElementsByName(itemname);    if(aa==undefined) return;    for (var i=0; i<aa.length; i++)aa[i].checked

Android ListView条目全选功能,不用checkbox实现!

大家好,翻了翻以前的笔记,发现了一个我特别标记的功能,那就是ListView全选功能,顿时想起了我那个时候苦逼的生涯,由于我大学机械出身,大学毕业了都不知道什么叫代码,在58干了一段销售.实在是干不下去了,不干了就得在网上找工作,就喜欢干电脑相关的工作,有一天,一家培训机构给我打来电话让我去面试,我以为让我去工作那,谁知道是忽悠我去培训,我当然不可能花钱了,就直接回去了,想了几天,除了销售我真不知道干啥,咬咬牙,就花钱培训了.我擦,咋说这到了,不跟你们说了,还是写下面的这个功能吧,虽然很简单,但

Vue的全选功能实现思路

全选功能的实现主要分两步: 1. 点击全选框选中所有选择框. 2. 当所有选择框都被选中时,勾选全选框. 详细思路: 1. 点击全选框选中所有选择框: 给全选框绑定一个值,然后添加change时间,当全选框的值改变时给所有选择框的值赋与全选框的值. 2. 当所有选择框都被选中时,选中全选框: 给所有选择框都添加change事件,当某个选择框的值改变时,检查所有选择框的状态:只要有一个选择框没被选中,则把全选框的值设为false,否则设为true. 注意:两步的关键区别在于,一个是通过事件改变,一

全选功能实现总结

全选功能实现: xml部分: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content&

JQUERY的给Check全选功能

//给Checkbox提供全选功能 $("#checkall").click(function(){ if(this.checked){ $("input[name='checkname[]']").each(function(){ this.checked = true; }); }else{ $("input[name='checkname[]']").each(function(){ this.checked = false; }); }

js初学—实现checkbox全选功能

布局如下: <p ><input type="checkbox" id="che1"/>全选</p><div id="div1"> <input type="checkbox" /><br /> <input type="checkbox" /><br /> <input type="checkb

JS全选功能代码优化

最近在看javascript MVC那本书,也感觉到自己写的代码也并不优雅,所以一直在想 用另一种模式来编写JS代码,所以针对之前的简单的JS全选功能来做个简单的demo,使用目前现在的编码方式来重新编码,当然以后会一直用这种方式来编写自己的代码.下面是如下代码: JS所有代码: /** * JS全选 * @class Checkall * @param {Object} cfg * @param {Element|selector} [cfg.container] 限定全选的容器 * @par

js实现全选功能

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

asp:DataGrid之添加asp:CheckBox做全选功能时涉及到绑值问题解决

最大的意图是为asp:CheckBox的value绑定上自己需要的value值,而不是默认的字符串"on" 参考了这篇文章带Value属性的扩展CheckBox控件,意义不大,换了种解决方案 jQuery风格的全选 $(function () { $("#allCheck").bind("click", function () { $("[name = $chkItem]:checkbox").attr("check