[英]How to create PagedList from DataTable for Pagination
我在ASP.NET MVC中,当前正在使用ADO.NET查询数据库,填充DataTable,然后将DataTable传递到视图以在屏幕上显示数据。 ( 我故意不遵循MVC最佳实践,而是试图找出一个概念 )
public ActionResult Index()
{
DataTable dt = new DataTable();
using (AdomdConnection con = new AdomdConnection(consString))
{
con.Open();
AdomdCommand query = new AdomdCommand("Some query blah blah", con);
AdomdDataAdapter da = new AdomdDataAdapter(query);
da.Fill(dt);
}
return View(dt);
}
并在视图中
@model System.Data.DataTable
@{
ViewBag.Title = "Home Page";
}
<table id="infoTable">
<thead>
<tr>
<th>Key</th>
<th>Weight</th>
<th>Discount Amount</th>
<th>Sales Count</th>
</tr>
</thead>
@foreach(System.Data.DataRow row in Model.Rows)
{
<tr>
@foreach(var cell in row.ItemArray)
{
<td>@cell</td>
}
</tr>
}
</table>
当前,这将在我的屏幕上显示所有数据行。 我想添加分页,以便一次只在屏幕上显示几条记录,并使用表格底部的控件查看更多记录。
我发现了PagedList,这个概念似乎很好用。 我不想传递DataTable到视图,而是传递PagedList,但是我不确定如何将DataTable转换为PagedList。
有谁知道我如何将我的DataTable放入一个PagedList中,然后将PagedList传递给我的视图进行分页?
首先,我将数据表按原样应该分成自己的模型,然后在这个模型中,
我建立
public List<DataRow> list { get; set;}//Regular list to hold data from Datatable
public PagedList<DataRow> plist { get; set; }//Paged list for pagination to be filled with data from regular List
然后,我将DataTable转换为列表
list = dt.AsEnumerable().ToList();
然后我使用列表初始化了PagedList
plist = new PagedList<DataRow>(list, page ?? 1, 5);
然后,我能够将该模型传递给我的视图,并能够遍历我的PagedList
plist
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.