datatable實例教程

来源:http://www.cnblogs.com/liujiaxian/archive/2017/01/21/6336809.html
-Advertisement-
Play Games

網站的後臺,多數是需要使用datatable來展示數據的,因為datatable的功能比較強大,可以更好的使用。 引用css html代碼 js代碼 服務端代碼 ...


網站的後臺,多數是需要使用datatable來展示數據的,因為datatable的功能比較強大,可以更好的使用。

引用css

<link href="../../static/assets/advanced-datatable/media/css/demo_page.css" rel="stylesheet" />
<link href="../../static/assets/advanced-datatable/media/css/demo_table.css" rel="stylesheet" />

html代碼

<!--篩選條件-->
        <div class="col-sm-12" style="margin-top: 10px;">
            <input type="text" class="form-control" id="txtmobile" placeholder="手機號碼" style="display: inline-block; width: 200px;"/>
          <input type="text" class="form-control" id="txtrealname" placeholder="真實姓名" style="display: inline-block; width: 200px;"/>
            <input type="text" class="form-control Wdate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" onclick="WdatePicker()" placeholder="登錄時間開始" id="txtlogintimestart" style="display: inline-block; width: 200px; height: 32px;"/>-
            <input type="text" class="form-control Wdate" onfocus="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss'})" onclick="WdatePicker()" placeholder="登錄時間結束" id="txtlogintimeend" style="display: inline-block; width: 200px; height: 32px;"/>
            <button type="button" class="btn btn-primary " style="display: inline-block;" onclick="articlesearch()">搜索</button>
        </div>

        <!--Table-->
        <div class="col-sm-12">
            <table class="table table-hover" id="hidden-table-info">
                <thead>
                    <tr>
                        <th class="hidden-phone">編號</th>
                        <th class="hidden-phone">手機號碼</th>
                        <th class="hidden-phone">真實姓名</th>
                        <th class="hidden-phone">支付寶</th>
                        <th class="hidden-phone">支付寶二維碼</th>
                        <th class="hidden-phone">微信</th>
                        <th class="hidden-phone">微信二維碼</th>
                        <th class="hidden-phone">開戶銀行</th>
                        <th class="hidden-phone">銀行卡號</th>
                        <th class="hidden-phone">開戶人</th>
                        <th class="hidden-phone">賬戶餘額</th>
                        <th class="hidden-phone">添加時間</th>
                        <th class="hidden-phone">操作</th>
                    </tr>
                </thead>
                <tbody></tbody>
            </table>
        </div>

js代碼

 <script type="text/javascript" src="../../static/assets/advanced-datatable/media/js/jquery.dataTables.js"></script>
    <script type="text/javascript">
        var oTable;
        var mobile;
        var logintimestart;
        var logintimeend;
        var realname;
        //創建表格
        $(document).ready(function () {
            oTable = $('#hidden-table-info').dataTable({
                "aaSorting": [],
                "bProcessing": true,
                "bServerSide": true,
                "serverSide": true,
                "aLengthMenu": [[10, 25, 50, 100], [10, 25, 50, 100]],
                "sPaginationType": "full_numbers",
                "bFilter": false,
                "bSort": true,
                "sAjaxSource": "../../handler/workerHandler.aspx",
                "fnServerData": function (sSource, aoData, fnCallback) {
                    aoData.push({ name: "action", value: "GetWorkerData" });
                    aoData.push({ name: "mobile", value: $("#txtmobile").val() });
                    aoData.push({ name: "realname", value: $("#txtrealname").val() });
                    aoData.push({ name: "logintimestart", value: $("#txtlogintimestart").val() });
                    aoData.push({ name: "logintimeend", value: $("#txtlogintimeend").val() });
                    $.ajax({
                        "dataType": 'json',
                        "type": "POST",
                        "url": sSource,
                        "data": aoData,
                        "success": fnCallback
                    });
                }, "aoColumnDefs": [{
                    "aTargets": [-1],
                    "mRender": function (data, type, full) {
                        return '<button class="btn btn-primary btn-xs" title="點擊編輯標題" onclick="btn_workeredit('   data   ',$(this))" style="margin-bottom:10px;">編輯</button><br/><button class="btn btn-primary btn-xs" title="點擊刪除" onclick="btn_worderdelete('   data   ')">刪除</button>';
                    },
                }],
                "aoColumns": [
                       { "mData": "workerID" },
                       { "mData": "mobile" },
                       { "mData": "realName" },
                       { "mData": "alipay" },
                       {
                           "mData": "alipayQRCode", "bSortable": false, "fnRender": function (obj) {
                               var data = obj.aData.alipayQRCode;
                               if (data != "" && data != null) {
                                   return '<a href="'   data   '" target="_blank" title="點擊查看原圖"><img src="'   data   '" style="width:80px;height:80px;" /></a>';
                               } else {
                                   return "";
                               }
                           }
                       },
                       { "mData": "wechat" },
                       {
                           "mData": "wechatQRCode", "bSortable": false, "fnRender": function (obj) {
                               var data = obj.aData.wechatQRCode;
                               if (data!=""&&data!=null) {
                                   return '<a href="'   data   '" target="_blank" title="點擊查看原圖"><img src="'   data   '" style="width:80px;height:80px;" /></a>';
                               } else {
                                   return "";
                               }
                           }
                       },
                       { "mData": "bank" },
                       { "mData": "bankCardNumber" },
                       { "mData": "bankCardName" },
                       { "mData": "fund" },
                       {
                           "mData": "addTime", "fnRender": function (obj) {
                               var date = obj.aData.addTime;
                               return DataTable_TimeFormat(date);
                           }
                       },
                       { "mData": "workerID", "bSortable": false },
                ],
            });



            $("#hidden-table-info_length").append("&nbsp;<button type='button' class='btn btn-danger' onclick='btn_reset()'>重置查詢條件</button>&nbsp;<button type='button' class='btn btn-danger' onclick='btn_workeradd()'>添加工作人員</button>");

        });

        //時間格式化
        function DataTable_TimeFormat(date) {
            if (date != "" && date != null) {
                var reg = /\./;//用來驗證數字,包括小數的正則
                if (reg.test(date)) {
                    date = date.split('.')[0];
                }
                return date.replace("T", " ");
            } else {
                return "";
            }
        }

        //搜索
        function articlesearch(sort) {
            mobile = $("#txtmobile").val();
            realname = $("#txtrealname").val();
            logintimestart = $("#txtlogintimestart").val();
            logintimeend = $("#txtlogintimeend").val();
            $("#hidden-table-info").dataTable().fnPageChange('first', true);
        }

        //重置搜索
        function btn_reset() {
            $("#txtmobile").val("");
            $("#txtrealname").val("");
            $("#txtlogintimestart").val("");
            $("#txtlogintimeend").val("");

            mobile = null;
            realname = null;
            logintimestart = null;
            logintimeend = null;

            $("#hidden-table-info").dataTable().fnPageChange('first', true);
        }
    </script>

服務端代碼

private object data = "";
        private object result = "";
        private int sEcho, iDisplayStart, iDisplayLength, sortid, count;
        private bool sorttype;
        protected void Page_Load(object sender, EventArgs e)
        {
            string act = null;
            try
            {
                act = Request["action"].ToString();
                sEcho = Convert.ToInt32(Request["sEcho"]);
                iDisplayStart = Convert.ToInt32(Request["iDisplayStart"]);//開始記錄數
                iDisplayLength = Convert.ToInt32(Request["iDisplayLength"]);//結束記錄數
                if (!int.TryParse(Request["iSortCol_0"], out sortid))//按哪列來排序
                {
                    sortid = -1;
                }
                sorttype = Request["sSortDir_0"] == "asc" ? false : true;//升序還是降序

                if (!string.IsNullOrEmpty(act))
                {
                    switch (act)
                    {
                        case "GetWorkerData": GetWorkerData(); break;//獲取工作人員信息
                    }
                }

                result = data;
            }
            catch (Exception ex)
            {
                result = ReturnMsg(Enum_return.失敗, ex.Message, null);
            }

            Response.Write(result);
        }
        #region 獲取工作人員
        private void GetWorkerData()
        {
            //按條件搜索
            string mobile = Request["mobile"];//手機號碼
            string realname = Request["realname"];//用戶類型
            string logintimestart = Request["logintimestart"];//登錄時間開始
            string logintimeend = Request["logintimeend"];//登錄時間結束

            //獲取所有數據
            List<yw_houseAgent_worker> list = null;
            IQueryable<yw_houseAgent_worker> result = Ctx.yw_houseAgent_worker;

            #region 排序區分
            switch (sortid)
            {
                case 0:
                    if (sorttype) result = result.OrderByDescending(c => c.workerID);
                    else result = result.OrderBy(c => c.workerID);
                    break;
                case 1:
                    if (sorttype) result = result.OrderByDescending(c => c.mobile);
                    else result = result.OrderBy(c => c.mobile);
                    break;
                case 2:
                    if (sorttype) result = result.OrderByDescending(c => c.realName);
                    else result = result.OrderBy(c => c.realName);
                    break;
                case 3:
                    if (sorttype) result = result.OrderByDescending(c => c.alipay);
                    else result = result.OrderBy(c => c.alipay);
                    break;
                case 5:
                    if (sorttype) result = result.OrderByDescending(c => c.wechat);
                    else result = result.OrderBy(c => c.wechat);
                    break;
                case 7:
                    if (sorttype) result = result.OrderByDescending(c => c.bank);
                    else result = result.OrderBy(c => c.bank);
                    break;
                case 8:
                    if (sorttype) result = result.OrderByDescending(c => c.bankCardNumber);
                    else result = result.OrderBy(c => c.bankCardNumber);
                    break;
                case 9:
                    if (sorttype) result = result.OrderByDescending(c => c.bankCardName);
                    else result = result.OrderBy(c => c.bankCardName);
                    break;
                case 10:
                    if (sorttype) result = result.OrderByDescending(c => c.fund);
                    else result = result.OrderBy(c => c.fund);
                    break;
                case 11:
                    if (sorttype) result = result.OrderByDescending(c => c.addTime);
                    else result = result.OrderBy(c => c.addTime);
                    break;
                default:
                    if (sorttype) result = result.OrderByDescending(c => c.workerID);
                    else result = result.OrderBy(c => c.workerID);
                    break;
            }
            #endregion


            if (!string.IsNullOrEmpty(mobile) || !string.IsNullOrEmpty(realname) || !string.IsNullOrEmpty(logintimestart) || !string.IsNullOrEmpty(logintimeend)) //搜索情況
            {
                #region 搜索情況
                if (mobile.Trim().Length > 0)//手機號碼
                {
                    result = result.Where(c => c.mobile.Contains(mobile));
                }
                if (realname.Trim().Length > 0)//姓名
                {
                    result = result.Where(c => c.realName.Contains(realname));
                }
                if (logintimestart.Trim().Length > 0 && logintimeend.Trim().Length > 0)//搜索查詢時間
                {
                    DateTime bstart = Convert.ToDateTime(logintimestart);
                    DateTime bend = Convert.ToDateTime(logintimeend);
                    result = result.Where(c => c.addTime >= bstart && c.addTime <= bend);
                }
                #endregion
            }

            count = result.Where(c => c.serialID == CurrentSerialID && c.isDelete == false).Count();
            list = result.Where(c => c.serialID == CurrentSerialID && c.isDelete == false).Skip(iDisplayStart).Take(iDisplayLength).ToList();



            string str = SerializeTableData(sEcho, count, list);
            Response.Write(str);
            Response.End();
        }
        #endregion




您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • "ABP入門系列目錄——學習Abp框架之實操演練" 完成了任務清單的增刪改查,咱們來講一講必不可少的的分頁功能。 首先很慶幸ABP已經幫我們封裝了分頁實現,實在是貼心啊。 來來來,這一節咱們就來捋一捋如何使用ABP的進行分頁吧。 一、分頁請求DTO定義 數據傳輸對象(Data Transfer Ob ...
  • 我們知道開機自啟動程式如果在用戶不登錄的情況下是不啟動的,但是服務類程式是可以跨過用戶登錄啟動的,例如IIS服務,SQL服務。如果我們已經寫好了桌面應用程式,又希望他開機自啟動,那就需要藉助系統服務在未登錄的時候打開程式。 創建系統服務 在VS中創建Windows服務: ![image_1b6vq6 ...
  • 大家都知道,現在和以前比起來,互聯網行業、軟體行業已經天差地別了。現在處處都在搞信息化建設,人人都知道互聯網思維。這樣的信息化時代,對於軟體開發者、對於軟體開發公司來說,是一個巨大的機遇。 在門外漢看來,軟體開發是機遇大、成本低,只要叫幾個程式員,就能搞出個軟體公司來。但是,事實情況是這個樣子嗎?本 ...
  • ASP.NET的FileUpload控制項可用於上傳文件到伺服器。HoverTreeTop新增了一個“閱圖”功能,圖片就是用FileUpload上傳的。閱圖功能查看:http://hovertree.com/top/htimg/這裡要說明的是上傳圖片限定文件名和文件大小等代碼。文件上傳功能使用用戶控制項 ...
  • 很多情況下我們需要獲取外網的IP地址,一般用自帶的方法獲取到的都是不准確,往往獲取到的是內網的IP地址,所以需要採用外部網站介面來獲取。 代碼 通過訪問第三方介面來獲取真實的ip地址 ...
  • 開始學習mvc開髮網站的時候,看了傳智博客的視頻教程,其中學習了一個和牛逼的框架,開始激動的深入學習,學完後卻發現其實那套框架太重並不適合一些中小型的網站開發,並且也使用導航屬性關聯外鍵,導致打開網站的速度非常緩慢,最快也要8s以上,所有之後總結如下。 原來框架結構 EF實體關係 由於框架太過於笨重 ...
  • 這裡採用的是.net的一個引用NReco.Recommender.dll,這是一個國外電影網站推薦系統衍生而來的,有興趣的可以到他們的官網看看。 以圖書商城為例 MVC 構造行為數據 首先需要對資料庫進行設計,增加一張用戶的行為數據表,記錄用戶訪問網站的行為,例如商城的一般記錄瀏覽的商品和購買過的商 ...
  • 根據以前的做法是拼接sql語句,這會增加維護成本,因為sql語句里的內容不會報錯,所以在使用ef的時候必須要拋棄拼接sql語句的習慣。 構建實例 構建搜索條件 參數過濾 很多情況下查詢到的結果並不能滿足我們的需要,還需要進行一些處理,這裡需要用linq ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...