C# Jquery数据表、分页和mvc。从数据库中获取x数量
由于数据表有点问题,我需要sql表中的所有数据,但是在我们的站点上运行它会导致严重的延迟,因为它有8000多条记录。所以我尝试使用C# Jquery数据表、分页和mvc。从数据库中获取x数量,c#,jquery,asp.net-mvc,linq,datatables,C#,Jquery,Asp.net Mvc,Linq,Datatables,由于数据表有点问题,我需要sql表中的所有数据,但是在我们的站点上运行它会导致严重的延迟,因为它有8000多条记录。所以我尝试使用Take(10.ToList()
Take(10.ToList()然而,在我的控制器中,jquery数据表将只填充10条记录(显然)。我希望在我的控制器中有一种简单的方法,一次只能加载十条记录。但仍然在数据表中保留整个sql表的分页。(远射)
例如,如果我将整个表数据加载到datatable中,它会有800多个页面。如果一次只获取10条记录,datatables将只显示一页。我需要一次获取10条记录,但同时显示800页的页面,当我单击“下一步”或特定页面时,它将加载这些记录。这可以从控制器/linq完成吗?无需在json/ajax通道上进行漫长的旅行
控制器
public PartialViewResult Listing()
{
var model = _db.MyDataBase.Take(10).ToList();
查看:
<table id="example" class="table table-striped table-bordered table-hover">
<tbody>
@foreach (var p in Model)
{
<tr class="gridRow" data-id="@p.MyId">
<td>@p.Id</td>
// etc....
@foreach(模型中的var p)
{
@p、 身份证
//等等。。。。
脚本:
<script type="text/javascript">
$(function () {
// Initialize Example
$('#example').dataTable();
});
</script>
public PartialViewResult Listing(int pageNumber, int pageResults)
{
var model = _db.MyDataBase
.OrderBy(row => row.ID)
.Skip((pageNumber -1) * pageResults)
.Take(pageResults)
.ToList();
}
$(函数(){
//初始化示例
$(“#示例”).dataTable();
});
只需调整您的方法即可接收两个参数:pageNumberpageResults
而不是添加Skip
跳过您不想显示的结果,并使用Take
从Skip
跳过的点开始获取结果
用法:
<script type="text/javascript">
$(function () {
// Initialize Example
$('#example').dataTable();
});
</script>
public PartialViewResult Listing(int pageNumber, int pageResults)
{
var model = _db.MyDataBase
.OrderBy(row => row.ID)
.Skip((pageNumber -1) * pageResults)
.Take(pageResults)
.ToList();
}
清单(1,20)
-将给我们0-20的结果
清单(3,20)
-将给我们提供60-80个结果
清单(5,10)
-将给我们50-60个结果
代码:
<script type="text/javascript">
$(function () {
// Initialize Example
$('#example').dataTable();
});
</script>
public PartialViewResult Listing(int pageNumber, int pageResults)
{
var model = _db.MyDataBase
.OrderBy(row => row.ID)
.Skip((pageNumber -1) * pageResults)
.Take(pageResults)
.ToList();
}
我建议您进行datatables.net的服务器端处理。请参阅提供int pageNumber
和int pageResults
的内容。将这两个参数传递给调用此方法的人。它们可以从用户执行的POST
到达第2页,也可以从另一个需要Pa的方法到达ge 3有10个结果。您应该向我们提供更多信息,从一开始调用<代码>列表<代码>操作的客户端代码或服务器代码。您希望结果按?DateCreated?Author?排序,您希望结果按升序或降序排列?通常情况下,jquery datatables会对传入数据进行排序,ho出于测试目的,我们只需按ID升序即可。