How can I implement jQuery DataTables plugin using C#, ASP.NET, SQL Server side processing?

后端 未结 3 1937
无人共我
无人共我 2020-12-08 03:51

How can I implement jQuery DataTables plugin using C#, ASP.NET, SQL Server side processing with ajax and webservices?

Would like to implement a Datatables grid using

3条回答
  •  情深已故
    2020-12-08 04:14

    Implementation in MVC, Entity Framework , Stored Procedure with Latest fetch offset pagination

    Step 1 - HTML

    # Name Base Discount Additional Discount Special Discount Action
    # Name Base Discount Additional Discount Special Discount Action
    @* *@

    Step 2 - C#

    using EmployeeTrackingSystemAndMIS.Models;
    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web.Mvc;
    
    namespace EmployeeTrackingSystemAndMIS.Controllers
    {
        public class ClientController : Controller
        {
            private EmployeeTrackingSystemAndMISEntities db = new EmployeeTrackingSystemAndMISEntities();
    
            public string SearchMis()
            {
                string limit, start, searchKey, orderColumn, orderDir, draw, jsonString;
                limit = Request.QueryString["length"] == null ? "" : Request.QueryString["length"].ToString();
                start = Request.QueryString["start"] == null ? "" : Request.QueryString["start"].ToString();
                searchKey = Request.QueryString["search[value]"] == null ? "" : Request.QueryString["search[value]"].ToString();
                orderColumn = Request.QueryString["order[0][column]"] == null ? "" : Request.QueryString["order[0][column]"].ToString();
                orderDir = Request.QueryString["order[0][dir]"] == null ? "" : Request.QueryString["order[0][dir]"].ToString();
                draw = Request.QueryString["draw"] == null ? "" : Request.QueryString["draw"].ToString();
    
    
                var parameter = new List();
                var param = new SqlParameter("@orderColumn", orderColumn);
                parameter.Add(param);
                param = new SqlParameter("@limit", limit);
                parameter.Add(param);
                param = new SqlParameter("@orderDir", orderDir);
                parameter.Add(param);
                param = new SqlParameter("@start", start);
                parameter.Add(param);
                param = new SqlParameter("@searchKey", searchKey);
                parameter.Add(param);
    
                var CompanySearchList = db.Database.SqlQuery("EXEC SearchCompany @orderColumn,@limit,@orderDir,@start,@searchKey ", parameter.ToArray()).ToList();
    
                dynamic newtonresult = new
                {
                    status = "success",
                    draw = Convert.ToInt32(draw == "" ? "0" : draw),
                    recordsTotal = CompanySearchList.FirstOrDefault().TotalCount,
                    recordsFiltered = CompanySearchList.FirstOrDefault().TotalCount,
                    data = CompanySearchList
                };
                jsonString = JsonConvert.SerializeObject(newtonresult);
    
                return jsonString;
            }
    
            private class CompanySearch
            {
                public int TotalCount { get; set; }
                public string abc { get; set; }
                public string Address { get; set; }
                public int? ClientID { get; set; }
                public int? EmployeeID { get; set; }
                public string name { get; set; }
                public int CompanyID { get; set; }
            }
        }
    }
    
    
    

    Step 3 - Stored Procedure

    USE [EmployeeTrackingSystemAndMIS]
    GO
    /****** Object:  StoredProcedure [dbo].[category_post]    Script Date: 22-02-2017 10:57:48 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    alter  procedure [dbo].SearchCompany
    
    @orderColumn  int ,
    @limit  int,
    @orderDir  varchar(20),
    @start  int,
    @searchKey varchar(20)
      as 
      BEGIN
    
         declare @to as int = @start+@limit  
    
        select TotalCount = COUNT(c.CompanyID) OVER(), null as abc,c.Address,c.ClientID ,c.EmployeeID  , name,
        c.CompanyID 
    
    
         from CompanyTbl c  where c.Name like '%'+@searchKey+'%'
    
            order by
                        CASE WHEN @orderColumn = 1 AND @orderdir = 'desc' THEN c.[name] END DESC,
                        CASE WHEN @orderColumn = 1 AND @orderdir = 'asc' THEN c.[name] END ASC,
                        CASE WHEN @orderColumn = 2 AND @orderdir = 'desc' THEN c.[name] END DESC,
                        CASE WHEN @orderColumn = 2 AND @orderdir = 'asc' THEN c.[name] END ASC
    
    
                        OFFSET @start ROWS
                                  FETCH NEXT @to ROWS ONLY
    
      End       
    

    提交回复
    热议问题