DateTables的服务器分页

     function InitTable() {


         var table = $('#tbl_users').DataTable();

         if ($.fn.dataTable.isDataTable('#tbl_users')) {
             table.destroy();
         }


         $("#txt_key").keyup(function () {
             $("#txt_deptid").val('');
             table.ajax.reload();
         });

         $('#tbl_users').unbind();
         $('#tbl_users').on('click', 'tr', function () {

             $(this).toggleClass('selected');
         });


         //提示信息
         var lang = {
             "sProcessing": "处理中...",
             "sLengthMenu": "每页 _MENU_ 项",
             "sZeroRecords": "没有匹配结果",
             "sInfo": "当前显示第 _PAGE_ 共 _PAGES_ 页,共 _TOTAL_ 项。",
             "sInfoEmpty": "当前显示第 0 至 0 项,共 0 项",
             "sInfoFiltered": "(由 _MAX_ 项结果过滤)",
             "sInfoPostFix": "",
             "sSearch": "搜索:",
             "sUrl": "",
             "sEmptyTable": "表中数据为空",
             "sLoadingRecords": "载入中...",
             "sInfoThousands": ",",
             "oPaginate": {
                 "sFirst": "首页",
                 "sPrevious": "上页",
                 "sNext": "下页",
                 "sLast": "末页",
                 "sJump": "跳转"
             },
             "oAria": {
                 "sSortAscending": ": 以升序排列此列",
                 "sSortDescending": ": 以降序排列此列"
             }
         };




         //初始化表格
         table = $("#tbl_users").dataTable({

             language: lang,  //提示信息
             autoWidth: false,  //禁用自动调整列宽 
             processing: true,  //隐藏加载提示,自行处理
             serverSide: true,  //启用服务器端分页
             searching: false,  //禁用原生搜索
             orderMulti: false,  //启用多列排序
             ordering: true,//禁止排序
             order: [],  //取消默认排序查询,否则复选框一列会出现小箭头

             dom: 'frtip',//lfrtip frtip
             pagingType: "simple_numbers",  //分页样式:simple,simple_numbers,full,full_numbers

             columnDefs: [{

                 // "targets": 'nosort',  //列的样式名
                 //"orderable": false    //包含上样式名‘nosort’的禁止排序



             }],





             ajax: function (data, callback, settings) {
                 //封装请求参数
                 // var param = {};
                 // param.limit = 10;// data.length;//页面显示记录条数,在页面显示每页显示多少项的时候
                 // param.start = data.start; //开始的记录序号
                 // param.page = (data.start / data.length) + 1;//当前页码
                 // param.key = $("#txtKey").val();//参数//console.log(param);
                 //ajax请求数据
                 //alert(data); data.order[0].dir:asc
                 var col = "";
                 var dir = "";
                 if (data.order != "") {
                     col = data.columns[data.order[0].column]["data"];
                     dir = data.order[0].dir;
                 }



                 $.ajax({
                     type: "GET",
                     url: "json_users.aspx",
                     cache: false,  //禁用缓存
                     async: false,
                     data: { key: escape($("#txt_key").val()), deptid: $("#txt_deptid").val(), start: data.start, limit: data.length, dir: dir, col: col },  //传入组装的参数
                     dataType: "json",

                     success: function (result) {
                         callback(result);


                     }
                 });
             },








             //列表表头字段
             columns: [
                  { "data": "Username" },
                  { "data": "Displayname" },
                  { "data": "Email" },
                  { "data": "Title" }
             ]


         }).api();


         //此处需调用api()方法,否则返回的是JQuery对象而不是DataTables的API对象




         // var table = $('#tbl_users').DataTable();

         //$('#tbl_users tbody').on('click', 'tr', function () {

         //    //var count = $("#count").html();

         //    //if ($(this).hasClass("selected")) {
         //    //    $("#count").html((parseInt(count) - 1));
         //    //}
         //    //else {
         //    //    $("#count").html((parseInt(count) + 1));
         //    //} 
         //    $(this).toggleClass('selected');
         //});
     }

 

 

后台代码:

        protected void Page_Load(object sender, EventArgs e)
        {

            
            string draw = Request["draw"] + "";
            string key = Server.UrlDecode(Request["key"]+"");

            int start=0;
            int pageSize=10;
            
            if(!string.IsNullOrEmpty(Request["start"]))
            {
                start = int.Parse(Request["start"]);
            }

             if(!string.IsNullOrEmpty(Request["limit"]))
            {
                pageSize = int.Parse(Request["limit"]);
            }

             string dir=Request["dir"];
             string colname = Request["col"];

            string sql = @" begin select IDENTITY(int,1,1) as Indexs, Username, Displayname, Deptname as Title, Deptid, Email into #Temp   From Wx_users where 1=1 ";
            
            if(!string.IsNullOrEmpty(key.Trim()))
            {
                sql+=" and username+displayname+deptname+pinyin like '%"+key+"%' ";
            }



            sql += " select * from  #temp where Indexs>" + start + " and Indexs<=" + (start + pageSize);


            if (colname == "")
            {
                sql += " order by Indexs asc ";
            }
            else
            {
                sql += " order by  " + colname + " " + dir;
            }

        sql+="   select count(*) from #temp  end ";

     
    
            DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter(sql,@"server=.\sqlexpress;uid=sa;pwd=sa;database=123");
          
            da.Fill(ds);


            dynamic newtonresult = new
            { 
                draw = Convert.ToInt32(draw == "" ? "0" : draw),
                recordsTotal = ds.Tables[1].Rows[0][0],
                recordsFiltered = ds.Tables[1].Rows[0][0],
                
                data = ds.Tables[0]
            };

            JsonSerializerSettings setting=new JsonSerializerSettings();
          

            string jsonString = JsonConvert.SerializeObject(newtonresult); //good
 
            
            
            



            Response.Clear();
            Response.ContentType = "application/json";
            Response.Write(jsonString);
            

        }


 独立的,客户的分页

 

<%@ Page Language="C#" AutoEventWireup="true"   CodeBehind="Pop_Users.aspx.cs" Inherits="Dotnet.Common.Pop_Users" %>
<%@ OutputCache Duration="300" VaryByParam="none" %>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
  
   
    <script src="../javascript/jquery-1.9.1.min.js"></script>
    <link href="../bootstrap/css/bootstrap.min.css" rel="stylesheet" />
    <script src="../bootstrap/js/bootstrap.min.js"></script>
    <script src="../javascript/layer/layer.js"></script>
    
    <link href="../javascript/datatables/datatables.css" rel="stylesheet" />
    <script src="../javascript/datatables/datatables.min.js"></script>


    <link href="../javascript/Tree/bootstrap-treeview.min.css" rel="stylesheet" />
    <script src="../javascript/Tree/bootstrap-treeview.min.js"></script>
     <link href="../style/patch.css" rel="stylesheet" />
    <script src="../javascript/common.js"></script>

    <style>
        .bgRed {
        
         background-color: #b0bed9; color:#ffffff; 

        }
    </style>

</head>
<body  style="margin:8px" >
    <form id="form1" runat="server">
     
       
         <style>
            #tree li {
             font-size:13px; line-height:13px;
            }
        </style>

     

       


          

    <table width="99%">
        <tr valign="top">
            <td width="320">
                    <div id="tree"></div>
            </td>
            <td>
 

<div style="margin:2px; text-align:right" >
             
                                   
     
        
 
      &nbsp; &nbsp;&nbsp; 
    已经选择人员: <span id="count" style="color:red">0</span>&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;
    
    
      <input class="form-control" id="txt_key" type="text"  placeholder="输入关键字搜索" style="width:200px; display:inline-block"   />
          
          <button class="btn btn-primary btn-flat" id="btnSelect"
              onclick="if(!Issel()) return false; parent.setPopAttend($('#sel').val()); parent.layer.closeAll(); "
              > 提交选中</button>


     
    <button class="btn btn-success" id="btnSelect"   onclick="select(); return false; "      >反选</button> 
      &nbsp; &nbsp;&nbsp; &nbsp;
    
     
</div>

               
                
             
                <table   class="table table-hover" style="border-top:solid 1px #eee; display:none" id="tbl_users"  >
        <thead>
            <tr>
               
                <th  style="width:50px">登录名</th>
                <th  style="width:70px">显示名</th>
                <th  style="width:90px">邮件</th>
                <th >职位</th>              
                    <th  style="width:10px"></th>  
                  <th  style="width:10px" ></th>  
            </tr>
        </thead>
        
    </table> 

            <div id="loading" style="width:600px; text-align:center;">
                    <img src="../images/loading.gif" /> 数据加载中
                </div>
                      




            </td>
        </tr>

    </table>



         
     
         

    
         
         


   

       <input type="hidden" name="sel" id="sel"/>


                 
 



        
 
 <script>


     $(document).ready(function () {



         var aj = $.ajax({
             url: 'json_dept.aspx',
             cache: false,
             dataType: 'json',
             success: function (datasource) {
                 $('#tree').treeview({
                     levels: 2, data: datasource, enableLinks: false,
                     onNodeSelected: function (event, key) {

                     }
                 });
             },
             error: function () {

             }
         });


         setTimeout(InitTable, 100);





     });





     function InitTable()
     {
        

         $('#tbl_users').DataTable({
             stateSave: false, "sDom": '<"top">rt<"bottom"p><"clear">', 
             "ajax": 'json_users.aspx',


         });
       
        



         $("#tbl_users").show();

         $("#loading").hide();




         $('#tbl_users').on('draw.dt', function () {
            
             $("#tbl_users th:nth-child(5)").hide();
             $("#tbl_users th:nth-child(6)").hide();
             $("#tbl_users td:nth-child(5)").hide();
             $("#tbl_users td:nth-child(6)").hide();
             $("#tbl_users").css("width", "100%");

         });



         var table = $('#tbl_users').DataTable();

         $('#tbl_users tbody').on('click', 'tr', function () {

             var count = $("#count").html();
            
             if ($(this).hasClass("selected"))
             {
                 $("#count").html((parseInt(count) - 1));
             }
           else
             {
               $("#count").html((parseInt(count) +1));
             }

             $(this).toggleClass('selected');
         });






         $('#txt_key').on('keyup', function () {
             table.column(4).search("").draw();
             table.search(this.value).draw();
         });



        


         $('#tree').on('nodeSelected', function (event, data) {
            
             table.search("").draw();
             table.column(4).search(data.tags).draw();
             
         });

     }




    


     function select() {

         var table = $('#tbl_users').DataTable();
         $('#tbl_users tbody tr').each(function () {
            $(this).toggleClass('selected');
         });

         var rows = table.rows('.selected').data();
         $("#count").html(rows.length);
     }


     function Issel() {
         var checked = 0;
         var result = '';
         var table = $('#tbl_users').DataTable();
         var _c = 0;

         var rows = table.rows('.selected').data();


         for (var i = 0; i < rows.length; i++) {

             checked++;
             var tds = rows[i]

           
             var username = tds[0];
             var displayname = tds[1];
           

             result = result +  "$" + username + "$" + displayname + "!";

         }


         if (checked > 0) {
             $("#sel").val(result);
             return true;
         }
         else {
             layer.alert('请至少选择一条记录', 12);
             return false;
         }
     }


 </script>



    </form>
</body>
</html>


  

 

posted @ 2018-08-09 11:07  启明星工作室  阅读(318)  评论(0编辑  收藏  举报