我从数据库中获取了大量行。每行与模型的对象相关联。所以现在,感谢一个强类型的视图,我正在传递一个像这样的对象列表:
public PartialViewResult ListerIncidentsHotline()
{
int NumDossier = StructureData.DonneNumDossier((string)Session["Utilisateur"], (string)Session["MotDePasse"]);
List<IncidentHotline> ListeIncidents = StructureData.DonneIncidentsHotline(NumDossier, 10);
int NbreIncidents = StructureData.DonneNombreIncidents(NumDossier);
ViewBag.NombreIncidents = NbreIncidents;
return this.PartialView(ListeIncidents);
}
所以在视图中我正在显示一个包含如下数据的表:
<table id="tabIncident" class="table table-striped">
<th>IdIncident</th><th>Libelle</th><th>Motif</th><th>Nom du responsable</th><th>Date de création</th><th>Date de clôture</th>
@foreach (var Incident in Model)
{
<tr><td>@Incident.IdIncident</td><td>@Incident.LibelleIncident</td><td>@Incident.MotifIncident</td><td>@Incident.NomResponsable</td><td>@Incident.DateCreation</td><td>@Incident.DateCloture</td></tr>
}
</table>
但是现在我想让juste在表格中显示其中的10行,然后通过点击按钮,显示下面的10行。有人有想法吗?
答案 0 :(得分:0)
您的功能可能如下所示:
public PartialViewResult ListerIncidentsHotline(int page = 1)
使用局部视图进行分页会有点棘手。基本上您的父视图还需要有一个页码参数,并且需要将该信息传递给局部视图。
然后你可能想要改变你的模型。现在,您的模型本身就是您的域模型的IEnumerable。您需要一个包含此IEnumerable的模型,但也包含分页信息,例如总页数和当前页面。
所以你的模型看起来像是:
public class IncidentPageInfo
{
public int NumPages { get; set; }
public int CurrentPage { get; set; }
public int PageSize { get; set; }
public IEnumerable<Incident> Incidents { get; set; }
}
然后在返回视图时,您将此对象作为模型传递,您将填充页面,如下所示:
public PartialViewResult ListerIncidentsHotline(int page = 1)
{
// other code
const int PageSize = 10;
IEnumerable<Incident> incidents; // this is returned from your data persistence. IQueryable is preferred to IEnumerable
var viewModel = new IncidentPageInfo()
{
NumPages = (int)Math.Ceiling((double)incidents.Count() / PageSize),
CurrentPage = page,
PageSize = PageSize,
Incidents = incidents.Skip((page - 1) * PageSize).Take(PageSize),
};
return PartialView(viewModel);
}
答案 1 :(得分:0)