実際、私は同じ質問がありました。私はそれに取り組んでおり、私はそれをしようとしています。あまりにも多くのステップを実行する必要があります、それはここでの答えではなく、ブログの投稿を行う方が良いでしょう。
私はこれをチェックすることをお勧めして、ニーズに応じて、独自のカスタマイズを行います。
http://www.c-sharpcorner.com/article/using-jquery-datatables-grid-with-asp-net-core-mvc/
私はいない純粋なC#とサーバー側で、APIとJSでの作業、それを一般化することをお勧めします(私も同じことをしましたが、2017/2018にあり、モバイルの世界ではそうしない方がいいです)。
このチュートリアルの後のほんの一部のヘルプ。私は、サーバー側の順でいくつかの問題を抱えていた、私は次のように解決した:
// POST: api/Curso/LoadData
[HttpPost]
[Route("LoadData")]
public IActionResult LoadData()
{
try
{
var draw = HttpContext.Request.Form["draw"].FirstOrDefault();
// Skip number of Rows count
var start = Request.Form["start"].FirstOrDefault();
// Paging Length 10,20
var length = Request.Form["length"].FirstOrDefault();
// Sort Column Name
var sortColumn = Request.Form["columns[" + Request.Form["order[0][column]"].FirstOrDefault() + "][name]"].FirstOrDefault();
// Sort Column Direction (asc, desc)
var sortColumnDirection = Request.Form["order[0][dir]"].FirstOrDefault();
// Search Value from (Search box)
var searchValue = Request.Form["search[value]"].FirstOrDefault();
//Paging Size (10, 20, 50,100)
int pageSize = length != null ? Convert.ToInt32(length) : 0;
int skip = start != null ? Convert.ToInt32(start) : 0;
int recordsTotal = 0;
/**start of improved code
// getting all Curso data
var cursoData = (IEnumerable<Curso>) _context.Curso.Include(c => c.CoordinadorAsignado).Include(e => e.Empresa).ToList();
//Sorting
if (!(string.IsNullOrEmpty(sortColumn) && string.IsNullOrEmpty(sortColumnDirection)))
{
PropertyInfo propertyInfo = typeof(Curso).GetProperty(sortColumn);
if (sortColumnDirection.Equals("asc"))
{
cursoData = cursoData.OrderBy(x => propertyInfo.GetValue(x, null));
}
else
{
cursoData = cursoData.OrderByDescending(x => propertyInfo.GetValue(x, null));
}
}
//Search
if (!string.IsNullOrEmpty(searchValue))
{
cursoData = cursoData.Where(m => m.Nombre.ToLower().Contains(searchValue.ToLower()));
}
End of improved code**/
//total number of rows counts
recordsTotal = cursoData.Count();
//Paging
var data = cursoData.Skip(skip).Take(pageSize).ToList();
//Returning Json Data
return Json(new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = recordsTotal, data = data });
}
catch (Exception)
{
throw;
}
}
私も検索を改善したが、それはまだただ一つの列のために働きます。
Rember含まれるように:
using Microsoft.EntityFrameworkCore;
using System.Reflection;
を私はこれが将来的にそれに取り組んでいくつかのパーソナルプラグインの男に役立ちます願っています。
警告 ソートはFK列(たとえば、Curso.Name)では機能しません。