Tag: 分页

分页.net MVC – 无需从WebService下载所有记录

我有以下问题。 我想做好分页,我不想将所有记录从WebService下载到我的应用程序。 控制器代码: public ActionResult Vacations(int? page) { int pageNumber = page ?? 1; int quantity = 5; using (MyWebService.MyWebServiceClient client = new MyWebService.MyWebServiceClient()) { var vacations = client.GetUserAbsence(SessionManager.CurrentToken, quantity, pageNumber); var onePageOfVacations = vacations.ToPagedList(pageNumber, quantity); ViewBag.OnePageOfVacations = onePageOfVacations; } return View(); } 查看代码: Vacations Data od Data do Ilość dni @{ foreach (var v […]

通过集合获取Paginated实体

考虑两个实体具有one-to-many收集Vehicles public class Person { public IList Vehicles { get; set;} } public class Vehicle { public string Name { get; set;} public Person Owner { get; set; } } 我显示一个有车辆的人员网格,并显示网格中第一辆车的名称。 网格是分页的。 我使用以下标准来获取数据 我有一个加载网格视图数据的标准 var criteria = DetachedCriteria.For() .CreateAlias(“Vehicles”,”vehicle”, JoinType.InnerJoin) .SetResultTransformer(new DistinctRootEntityResultTransformer()) .SetMaxResults(pageSize) .SetFirstResult((page – 1) * pageSize) criteria.Add(Restrictions.Eq(“vehicle.Name”, “super”)); 其中page和pageSize是计算位。 问题是因为最大结果和第一个结果是在数据库中计算的,并且不同的根在外部完成,行数不匹配。 有没有办法解决这个问题?

GridView排序和分页

我想在我的页面上显示简单的gridview,并为它提供排序和分页function。 单独排序和分页工作正常,但两者的组合没有。 例如,如果我将第一列降序排序然后转到第二页,那么我会看到第二页数据的默认排序(升序)。 我非常依赖这个问题的代码: GridView排序:SortDirection总是升序 ,但问题仍然存在。 另外 – 因为看起来我必须更改我的代码,以便使用Session对象而不是使用ViewState,所以还必须解决这个问题…… 我的代码简化了,只有两列: ASPX: 和代码隐藏: public partial class TestPage :Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DisplayData(); } } private void DisplayData() { Session[“TableView”] = GetUsers(); dgvView.DataSource = Session[“TableView”]; dgvView.DataBind(); } protected void DgvViewPageIndexChanging(object sender, GridViewPageEventArgs e) { dgvView.PageIndex = e.NewPageIndex; DisplayData(); } […]

C#entity framework分页

有没有办法获得复杂的Linq查询和数百万条记录的行数, 而无需点击数据库两次或写入2个单独的查询? 我可能有自己的建议。 写一个存储过程,但我很擅长MySQL而不是MSSQL。 任何更好的建议都会很棒。 此外,如果有人知道Microsoft是否正在将此function添加到entity framework中。

使用NHibernate对延迟加载的集合进行分页

我读过这篇文章 ,其中Ayende表示NHibernate可以(与EF 4相比): 使用lazy =“extra”的集合 – Lazy extra意味着NHibernate适应您可能在集合之上运行的操作。 这意味着blog.Posts.Count不会强制加载整个集合,而是会从Posts中创建一个“select count(*),其中BlogId = 1”语句,而blog.Posts.Contains()同样会产生在单个查询中,而不是支付将整个集合加载到内存的价格。 集合filter和分页集合 – 这允许您在实体集合之上定义其他filter(包括分页!),这意味着您可以轻松浏览blog.Posts集合,而不必将整个内容加载到内存中。 所以我决定整理一个测试案例。 我创建了陈词滥调的Blog模型作为一个简单的演示,有两个类如下: public class Blog { public virtual int Id { get; private set; } public virtual string Name { get; set; } public virtual ICollection Posts { get; private set; } public virtual void AddPost(Post item) { if (Posts […]

是否有使用POST而不是GET的MVC寻呼机?

这是我的问题。 我有一个SearchViewModel ,它有很多搜索条件,这些值根本不适合URL。 我目前正在使用Troy Goode’s Html.PagedListPager ,但它被设计为使用Url.Action()在URL中发送参数。 这是一个例子。 我不认为客户端过滤是一种选择,因为我会有很多记录。 @Html.PagedListPager( (IPagedList)@Model.SearchResults, page => Url.Action(“Results”, new { YearBuiltFrom = Model.YearBuiltFrom, } )) } 如果您只有一个或两个简单参数,这是一个很好的解决方案。 SearchViewModel public class SearchViewModel { public int? page { get; set; } public int? size { get; set; } [IgnoreDataMember] public IPagedList SearchResults { get; set; } public string[] Locations { get; […]

没有数据源控制的高效Gridview分页问题

我试图在不使用数据源控件的情况下使用gridview进行高效分页。 通过有效,我的意思是我只检索我打算显示的记录。 我正在尝试使用PagerTemplate来构建我的寻呼机function。 简而言之,问题是如果我只绑定我打算在当前页面上显示的记录,gridview不会呈现其寻呼机模板,所以我没有得到分页控件。 这几乎就像我必须绑定的记录多于我打算在给定页面上显示的记录,这不是我想要做的事情。

PagedList使用LINQ Skip and Take,但使用Count of results显示分页

我试图显示一个过滤的产品列表,基于Categoryfilter和ItemsPerPage但我在尝试与PagedList一起使用时遇到了一些问题。 如果我需要编写自己的分页代码,或者有办法使用PagedList获得我需要的结果,那么具有PagedList专业知识的人可以建议我。 我正在使用LINQ的Skip&Take函数来仅获取当前页面上需要显示的行数,但我仍然希望根据filter的总计数来分页链接以显示页面。 例如:我的搜索filter找到50个结果,但由于我每页的行数是10个项目,我使用LINQ的Skip()和Take()只返回10行。 我仍然需要在我的View.cshtml中显示页面链接<< 1 | 2 | 3 | 4 | 5 >>现在使用默认的PagedList,我只得到<> ,我知道为什么我只看到一个页面,但我只想知道如何使其工作以显示正确数量的页面链接,而只获得一个子集结果 **我的目标是将优化的查询写入数据库,以便网页响应性能快速。 这是我的Action方法的代码。 代码获得了正确的结果,但分页不起作用,因为我需要它: public ViewResult List(int page =1, string category =null) { if (category != null) this.CurrentCategory = category; var products = repository.Products .Where(p => this.CurrentCategory == null || p.Category == this.CurrentCategory) .OrderBy(p => p.ProductID) .Skip((page -1) * PageSize) […]

使用LINQ to SQL进行分页搜索结果

使用LINQ to SQL获取分页结果的最佳模式是什么? 我有以下情况: 假设我想按描述搜索项目表。 我可以轻松地做到: public IQueryable FindItemsByDescription(string description) { return from item in _dc.Items where item.Description.Contains(description); } 现在,对这个结果集进行分页的最佳方法是什么? 我应该在执行此操作之前执行计数查询以查找结果集大小,然后根据我的需要限制此查询吗? 我觉得这是要走的路。 我应该执行完整查询,从数组大小中获取计数并仅返回此数组中的分页子集吗? 如果结果集足够大,我觉得这会浪费很多时间……或者LINQ to SQL在这里做了些什么? 是否有LINQ to SQL常用模式来执行此操作? 编辑:我必须澄清一件小事。 我知道Take和Skip方法。 但是,在使用Take和Skip之前,我应该如何获得查询将检索的结果总数 ?