首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Blazor服务器-分页和导航

问Blazor服务器-分页和导航
EN

Stack Overflow用户
提问于 2020-06-03 18:57:18
回答 1查看 962关注 0票数 0

我正在使用Blazor的网站与分页列表与列表/搜索结果(如在任何正常的在线目录网站)。我想知道以下场景的最佳解决方案是什么:

  1. 我有一个搜索组件,它将类别名称作为参数加上查询字符串,这样url看起来就像这个https://example.com/cars?loc=london?text=silver
  2. 它可以给我超过10个结果,所以我增加了分页。
  3. 当我转到下一页时,url将添加页码,例如https://example.com/cars?loc=london?text=silver?page=3

我的问题是,当我第一次访问组件时,它会按预期执行OnInitializedAsync()和OnParametersSetAsync()。

当我单击下一个/上一个页码时,我有下面的代码,但是导航管理器不会再次调用OnInitializedAsync()和OnParametersSetAsync()方法,因此我无法根据页面号获得新的列表(我只能在url中看到页码,但什么也没有发生)。

我可以强迫Blazor再次运行OnInitializedAsync()和OnParametersSetAsync(),或者我做错了吗?

代码语言:javascript
复制
public void PageIndexChanged(int newPageNumber)
{
    if (newPageNumber < 1 || newPageNumber > totalPages)
    {
        return;
    }
    currentPage = newPageNumber;
    //...
    query.Add("page", currentPage.ToString());

    NavigationManager.NavigateTo(QueryHelpers.AddQueryString(categoryUrl, query));
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-04 19:34:17

喂,

这是一个很长的机会,你试过了吗?

代码语言:javascript
复制
navigationManager.NavigateTo(url,true)

结束处的true强制导航管理器(重新)加载页面。

导航管理器信息

打招呼,

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62180620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档