使用 jquery 数据表进行分页、过滤和搜索的服务器端处理 [英] using jquery datatable for server side processing with paging, filtering and search

查看:19
本文介绍了使用 jquery 数据表进行分页、过滤和搜索的服务器端处理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要为我的 asp 使用 jquery 数据表服务器端处理 (http://datatables.net).net mvc (C#) 应用程序.

I need to use the jquery datatable server-side processing (http://datatables.net) for my asp.net mvc (C#) application.

我的应用程序有数千条记录以列表形式显示在表中.我正在使用 jquery 数据表来启用分页、过滤和搜索.

My application has thousands of records to show in the table as list. I am using jquery datatable to enable paging, filtering and search.

jquery 数据表服务器端处理有什么好的参考/文章可以与 asp.net mvc (C#) 一起使用吗?

Is there any good reference/articles for jquery datatable server-side processing to use with asp.net mvc (C#)?

推荐答案

您好,此链接可能对您有所帮助...

Hi this link may be helpful to you...

http://www.dotnetawesome.com/2015/11/jquery-datatable-server-side-pagination-sorting.html

这里是关于 ASP.NET MVC 中的 jQuery Datatable 服务器端分页和排序的文章,在 asp.net mvc (C#) as server dside 中逐步解释我会参考这篇文章[jQuery Datatable server side pagination and sort in ASP.NET MVC

Here the article about jQuery Datatable server side pagination and sorting in ASP.NET MVC , explained step by step in asp.net mvc (C#) as server dside I will refer this article [jQuery Datatable server side pagination and sorting in ASP.NET MVC

用于设置 jQuery Datables 的 jQuery 代码

jQuery code for setup jQuery Datables

<script>
    $(document).ready(function () {
        $("#myTable").DataTable({
            "processing": true, // for show progress bar
            "serverSide": true, // for process server side
            "filter": false, // this is for disable filter (search box)
            "orderMulti": false, // for disable multiple column at once
            "ajax": {
                "url": "/home/LoadData",
                "type": "POST",
                "datatype": "json"
            },
            "columns": [
                    { "data": "ContactName", "name": "ContactName", "autoWidth": true },
                    { "data": "CompanyName", "name": "CompanyName", "autoWidth": true },
                    { "data": "Phone", "name": "Phone", "autoWidth": true },
                    { "data": "Country", "name": "Country", "autoWidth": true },
                    { "data": "City", "name": "City", "autoWidth": true },
                    { "data": "PostalCode", "name": "PostalCode", "autoWidth": true }
            ]
        });
    });
</script>

ASP.NET C# 代码 (MVC)

ASP.NET C# Code (MVC)

[HttpPost]
    public ActionResult LoadData()
    {

        var draw = Request.Form.GetValues("draw").FirstOrDefault();
        var start = Request.Form.GetValues("start").FirstOrDefault();
        var length = Request.Form.GetValues("length").FirstOrDefault();
        //Find Order Column
        var sortColumn = Request.Form.GetValues("columns[" + Request.Form.GetValues("order[0][column]").FirstOrDefault() + "][name]").FirstOrDefault();
        var sortColumnDir = Request.Form.GetValues("order[0][dir]").FirstOrDefault();


        int pageSize = length != null? Convert.ToInt32(length) : 0;
        int skip = start != null ? Convert.ToInt32(start) : 0;
        int recordsTotal = 0;
        using (MyDatatableEntities dc = new MyDatatableEntities())
        {

            var v = (from a in dc.Customers select a);

            //SORT
            if (!(string.IsNullOrEmpty(sortColumn) && string.IsNullOrEmpty(sortColumnDir)))
            {
                v = v.OrderBy(sortColumn + " " + sortColumnDir);
            }

            recordsTotal = v.Count();
            var data = v.Skip(skip).Take(pageSize).ToList();
            return Json(new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = recordsTotal, data = data }, JsonRequestBehavior.AllowGet);
        }
    }

这篇关于使用 jquery 数据表进行分页、过滤和搜索的服务器端处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆