【发布时间】:2019-12-24 05:05:47
【问题描述】:
我正在尝试使用 Blazor 制作分页组件。导航First、Last、Previous 和Next 已经在工作。问题是:我希望用户能够点击页码并通过传递页码来执行 NavigateToPage 操作。
这是我的尝试:
<div class="col-12 col-md-6 col-lg-3 offset-lg-6 text-right">
<nav aria-label="Page navigation example">
<ul class="pagination justify-content-end">
<li class="page-item @PuedeNavegarPrimeraPagina">
<a class="page-link" tabindex="-1" @onclick="NavegarHaciaPrimeraPagina">Primera</a>
</li>
<li class="page-item @PuedeNavegarPaginaAnterior">
<a class="page-link" tabindex="-1" @onclick="NavegarHaciaPaginaAnterior">Anterior</a>
</li>
@for (int i = 1; i <= TotalPaginas; i++)
{
var clasePaginacionPaginaActual = (PaginaActual == i) ? "disabled" : "";
<li class="page-item @clasePaginacionPaginaActual"><a class="page-link" @onclick="(() => NavigateToPage(i))">@i</a></li>
}
<li class="page-item @PuedeNavegarPaginaSiguiente">
<a class="page-link" @onclick="NavegarHaciaPaginaSiguiente">Siguiente</a>
</li>
<li class="page-item @PuedeNavegarUltimaPagina">
<a class="page-link" @onclick="NavegarHaciaUltimaPagina">Última</a>
</li>
</ul>
</nav>
</div>
NavigateToPage 需要页码,但当前代码总是为所有链接发送相同的值,对应于 i 的最后一个值。如果有 4 个页面,那么无论点击哪个链接,都以 5 为参数。
知道如何获取不同的参数值吗?
【问题讨论】:
-
对 Blazor 不太熟悉,所以我对此并不完全确定,因此仅将其作为评论。使用表达式函数,您需要在变量被延迟时关闭它们。因此,您可能需要在
for循环内关闭i。也许,int pageValue = i;然后@onclick="(() => NavigateToPage(pageValue))">会起作用。 -
没错。这不是 Blazor 问题...
标签: c# blazor blazor-server-side