- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在我的 View 中使用 PagedList,但我的脚手架 Controller 是使用这种默认索引操作生成的:
public async Task<ActionResult> Index()
{
return View(await db.Claimants.ToListAsync());
}
我没有找到 PagedList 与 async
一起工作的扩展。我的方法必须更改为如下形式:
public ActionResult Index(int? page)
{
var claimants = db.Claimants.OrderBy(b => b.Name);
var notNullPage = page ?? 1;
return View(claimants.ToPagedList(notNullPage, 50));
}
是否有合理的方式来处理 PagedList 和 async
?
最佳答案
Is there a reasonable way to work with PagedList and async?
是的。不会与 EF 开箱即用。但是,你可以获得 PagedList.EntityFramework
它公开了一个 ToPagedListAsync
:
public class PagedListExtended<T> : BasePagedList<T>
{
private PagedListExtended()
{
}
public static async Task<IPagedList<T>> Create(IQueryable<T> superset, int pageNumber, int pageSize)
{
var list = new PagedListExtended<T>();
await list.Init(superset, pageNumber, pageSize);
return list;
}
async Task Init(IQueryable<T> superset, int pageNumber, int pageSize)
{
if (pageNumber < 1)
throw new ArgumentOutOfRangeException("pageNumber", pageNumber, "PageNumber cannot be below 1.");
if (pageSize < 1)
throw new ArgumentOutOfRangeException("pageSize", pageSize, "PageSize cannot be less than 1.");
TotalItemCount = superset == null ? 0 : await superset.CountAsync();
PageSize = pageSize;
PageNumber = pageNumber;
PageCount = TotalItemCount > 0 ? (int) Math.Ceiling(TotalItemCount/(double) PageSize) : 0;
HasPreviousPage = PageNumber > 1;
HasNextPage = PageNumber < PageCount;
IsFirstPage = PageNumber == 1;
IsLastPage = PageNumber >= PageCount;
FirstItemOnPage = (PageNumber - 1)*PageSize + 1;
var num = FirstItemOnPage + PageSize - 1;
LastItemOnPage = num > TotalItemCount ? TotalItemCount : num;
if (superset == null || TotalItemCount <= 0)
return;
Subset.AddRange(pageNumber == 1 ? await superset.Skip(0).Take(pageSize).ToListAsync() : await superset.Skip((pageNumber - 1)*pageSize).Take(pageSize).ToListAsync());
}
}
public static class PagedListExtendedExtensions
{
public static async Task<IPagedList<T>> ToPagedListAsync<T>(this IQueryable<T> superset, int pageNumber, int pageSize)
{
return await PagedListExtended<T>.Create(superset, pageNumber, pageSize);
}
}
关于c# - PagedList 和异步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31574315/
设置: 我们正在使用 PagedListEpoxyController , RxPagedListBuilder , ItemKeyedDataSource运行时 Mockgenerator它只是根据
我需要将域对象映射到 UI 对象并使用实时分页列表显示。 我试图映射 LiveData>至 LiveData>和 map PositionalDataSource至 PositionalDataSou
PagedList 已弃用,我应该改用什么?我正在使用分页库从 Firestore 中获取数据。 这是我的代码 val config = PagedList.Config.Builder()
我已经使用 Android 的分页库 (https://developer.android.com/topic/libraries/architecture/paging.html) 实现了一个带有分
我自己手动计算了一堆行,包括一些不在我的数据库中的附加数据。为了提高效率,我只根据页码和页面大小计算了当前页面中的行数。 我试图将其放入 PagedList 中,但这需要整个数据集,而不是我想显示的子
我的问题是如何更新 PagedList 中的项目? 在我的例子中,有 ListActivity 和 DetailsActivity。列表 Activity 使用分页组件从网络(仅)获取帖子,并使用分页
我一直在使用 Google 的 arch 库,但是使测试变得困难的一件事是使用 PagedList . 对于此示例,我使用存储库模式并从 API 或网络返回详细信息。 所以在 ViewModel 中我
我正在尝试将架构组件集成到我的应用程序中,即分页、LiveData、ViewModel。Room 之前已经集成和测试过,所以我可以返回 DataSource.Factory来 self 的 DAO 类
我在我的 View 中使用 PagedList,但我的脚手架 Controller 是使用这种默认索引操作生成的: public async Task Index() { return Vie
我正在使用 http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-pagin
我丢失了第二页和之后的所有数据。第一个结果/页面显示了正确的数据。第二页及之后,没有数据。 我的代码: public ActionResult Contact(int? pageNumber, str
我正在尝试显示产品列表并显示分页。所以,我决定使用 PagedList 插件。我在下面的链接中阅读了一些有关如何修改 Controller 和 View 的示例。 https://github.com
我安装了 PagedList.MVC Nugget 包,我正在尝试从列表中创建一个 PagedList ListProductsList 在我看来: @model PagedList.IPagedLi
已经两天了,我正在尝试学习如何将新的分页库与 Kotlin 语言一起使用(也是第一次) 所以我已经阅读了很多指南/教程和 Github repo (https://github.com/STAR-ZE
我正在使用 PagedList我的应用程序中的库。 使用 PagedListAdapter 一切正常.但是,我无法找到如何获得回调并收到 PagedList 已更新的通知。 在列表的ItemKeyed
嗨,我正在使用 mvvm 和分页库。分页效果完美。 我想从列表中删除项目。 当我尝试删除项目时 E/AndroidRuntime: FATAL EXCEPTION: main Process:
我正在使用 Play2.0 框架作为后端 API。所以我想从数据库中列出游乐设施,并且我想排除具有重复“地点”名称的游乐设施。 我正在使用此代码,但这给了我存储在数据库中的所有游乐设施记录。如何排除重
我正在使用 TroyGoode 制作的 PagedList:https://github.com/TroyGoode/PagedList/ 但我希望它呈现不同于我目前拥有的其他输出。 默认输出为:ww
我正在尝试找出在 asp.net MVC 中使用 ViewModel 实现分页列表的正确方法。 假设我有以下 PagedClientViewModel: public class PagedClien
我的通用存储库中有以下功能。 var list = query.ToPagedList(pageNumber, pageSizeNumber); 这行有两个问题 public IEnumerable
我是一名优秀的程序员,十分优秀!