ASP.NET MVC的过滤/排序
创始人
2024-09-16 14:32:03
0

在ASP.NET MVC中,可以使用过滤和排序来对数据进行筛选和排序。以下是一种解决方法,包含了代码示例:

  1. 创建一个控制器,并添加一个Action方法来处理过滤和排序的请求。
public class HomeController : Controller
{
    public ActionResult Index(string sortOrder, string searchString)
    {
        // 获取要排序的列名和搜索关键字
        ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
        ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
        ViewBag.CurrentFilter = searchString;

        // 获取数据源
        var data = GetData();

        // 根据搜索关键字进行过滤
        if (!String.IsNullOrEmpty(searchString))
        {
            data = data.Where(d => d.Name.Contains(searchString));
        }

        // 根据排序列进行排序
        switch (sortOrder)
        {
            case "name_desc":
                data = data.OrderByDescending(d => d.Name);
                break;
            case "Date":
                data = data.OrderBy(d => d.Date);
                break;
            case "date_desc":
                data = data.OrderByDescending(d => d.Date);
                break;
            default:
                data = data.OrderBy(d => d.Name);
                break;
        }

        return View(data.ToList());
    }

    private IQueryable GetData()
    {
        // 此处为示例,可以根据实际情况获取数据源
        var data = new List
        {
            new DataModel { Id = 1, Name = "John", Date = DateTime.Now.AddDays(-5) },
            new DataModel { Id = 2, Name = "Alice", Date = DateTime.Now.AddDays(-3) },
            new DataModel { Id = 3, Name = "Bob", Date = DateTime.Now.AddDays(-1) }
        };

        return data.AsQueryable();
    }
}
  1. 创建一个视图来显示过滤和排序的结果。
@model IEnumerable

@{
    ViewBag.Title = "Home Page";
}

Filter and Sort Example

@using (Html.BeginForm("Index", "Home", FormMethod.Get)) { Search: @Html.TextBox("searchString", ViewBag.CurrentFilter as string) }

@foreach (var item in Model) { }
Name @if (ViewBag.NameSortParm == "name_desc") { } else { } Date @if (ViewBag.DateSortParm == "date_desc") { } else { }
@item.Name @item.Date.ToShortDateString()

在上述代码中,Index方法接收两个参数:sortOrder和searchString。sortOrder用于指定排序的列和顺序,searchString用于指定搜索关键字。

在视图中,通过点击列名的链接来改变排序列和顺序,并通过表单提交来改变搜索关键字。最后,使用foreach循环将过滤和排序后的结果显示在表格中。

注意:以上示例只是一种简单的实现方式,实际情况可能更复杂。你可以根据自己的需求进行修改和扩展。

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...