【问题标题】:How to add this Previous/Next Button functionality?如何添加此上一个/下一个按钮功能?
【发布时间】:2022-06-24 00:27:58
【问题描述】:

我正在迁移一个应用程序,该应用程序在详细信息视图中具有“上一个”/“下一个”按钮以在记录之间导航。要在其间导航的记录可能已在“索引”视图中过滤。例如,记录 1-5 可能最初都显示在索引视图中。然后用户过滤记录,只显示记录 1、3 和 5。当用户转到记录 3 的详细信息视图时,单击“上一个”按钮导航到记录 1。单击“下一步”按钮导航到记录 5。

在旧的解决方案中,存储过程用于过滤、排序和分页。返回过滤/未过滤记录的返回模型,它是视图模型的一部分。这就是访问过滤后的记录 ID 以在记录之间导航的方式。

在新的解决方案中,由于存储过程使用临时表,POCO 生成器不会生成返回模型,因此没有使用存储过程。我尝试将 fmtonly 设置为关闭,但它不起作用,并且我读到 fmtonly 已被弃用。

取而代之的是,使用 jQuery serverSide 数据表和 C# 中的 Linq。

目前,我可以使用以下方法在所有记录之间导航:

ViewBag.PreviousId = _db.Applications
                        .OrderByDescending(a => a.AppNumber)
                        .Where(a => a.AppNumber < application.AppNumber)
                        .Select(a => a.Id).FirstOrDefault();

ViewBag.NextId = _db.Applications
                    .OrderBy(a => a.AppNumber)
                    .Where(a => a.AppNumber > application.AppNumber)
                    .Select(a => a.Id) 
                    .FirstOrDefault();

如何在过滤后的记录之间导航?

【问题讨论】:

    标签: c# jquery linq stored-procedures datatables


    【解决方案1】:

    不确定我是否正确,但也许:

    取一个元素并跳过位置 0,1,2,3,... 怎么样?

    下一个:位置+1 上一个:位置 1。

    .Skip(position)
    .Take(1)
    

    https://docs.microsoft.com/en-us/ef/core/querying/pagination#offset-pagination

    【讨论】:

    • 分页适用于数据表/索引视图。问题是如何使用位于详细信息视图中的“上一个”和“下一个”按钮在记录之间导航。主要是如何获取数据表/索引视图中显示的记录的 Id 值,以便在详细信息视图上的记录之间导航。
    【解决方案2】:

    我的解决方案是将data.ToList() 保存到JsonResult 方法中的会话中:

    Session["HR_Applications"] = data.ToList();.

    然后在Details 方法中从会话中获取值:

    var applications = (List&lt;Application&gt;)Session["HR_Applications"];

    最后,设置 previousId 和 nextId 值:

    ViewBag.PreviousId = applications.OrderByDescending(a => a.AppNumber).Where(a => a.AppNumber < application.AppNumber).Select(a => a.ApplicationId).FirstOrDefault();
    
    ViewBag.NextId = applications.OrderBy(a => a.AppNumber).Where(a => a.AppNumber > application.AppNumber).Select(a => a.ApplicationId).FirstOrDefault();
    

    【讨论】:

      猜你喜欢
      • 2014-09-20
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多