我是MVC的新手,我不了解如何在网格上进行分页和排序.我习惯于使用asp.Net GridView控件,ObjectDataSource指向我们业务层中的对象——在这种情况下,ODS处理所有的分页&使用ORM在对象上生成的方法进行排序.

我已经研究过在MVC中使用相同的ORM——结果很好——我只是循环遍历集合来构建页面上的表——但没有ODS来处理分页&分类,我不知道该怎么处理.我需要一个单独的控制器来进行分页和排序吗?

我知道我需要自己滚--但是我从哪里开始呢?我已经创建了一个CustomerController和一个显示客户表的视图,如下所示-我希望按FirstName或LastName列进行排序.我的模型上有一个Sort()方法,它将采用GridView/ODS对使用的格式的字符串排序表达式.我是否要在CustomerController上创建一个名为Sort的新操作,并在标题中放置一个ActionLink?

    <table>
    <tr>
        <th>
            First Name
        </th>
        <th>
            Last Name
        </th>
    </tr>
    <% foreach (var item in Model)
       { %>
    <tr>
        <td>
            <%= Html.Encode(item.FirstName) %>
        </td>
        <td>
            <%= Html.Encode(item.LastName) %>
        </td>
    </tr>
    <% } %>
</table>

推荐答案

您可以使用相同的控制器,只需添加一个附加参数并将其命名为sort.然后在控制器中判断sort的值,并根据该参数对数据进行排序.

或者,如果你想在客户端做一些事情,你可以使用类似于tablesorter的东西,一个jquery插件.

Asp.net相关问答推荐

ASP.NET MVC forEach 循环仅返回 1 个值

是否可以发布 ASP.NET 5 应用程序以使目标机器不需要安装 DNX?

如何在 IIS 上配置 Web Deploy 发布功能,以便开发人员可以发布?

C# ASP.NET Core Serilog 添加类名和方法到日志(log)

Dotnet core 2.0 身份验证多模式身份 cookie 和 jwt

在 ASP.NET 中更改错误消息的语言

如何使用 ASP.Net MVC 路由来路由图像?

Ef core:执行 MaxAsync 时序列不包含任何元素

如何在新实现的接口或基类之间做出决定?

LINQ:使用 Lambda 表达式获取 CheckBoxList 的所有选定值

在 aspnetcore (netcoreapp1.0) 中替代 System.Web.Security.Membership.GeneratePassword

如何判断用户代理是 ipad 还是 iphone?

根据 DropDownList 的值动态启用或禁用RequiredFieldValidator

应该如何使用 RedirectToRoute?

.NET 4.0 中的自定义 MembershipProvider

Html.RenderAction 和 Html.Action 的区别

在 Application_BeginRequest 中设置会话变量

elmah:没有 HttpContext 的异常?

ASP.NET MVC 5 Web.config:FormsAuthenticationModule或FormsAuthentication

您可以从 web.config 文件中的其他位置提取 log4net AdoNetAppender 的 connectionString 吗?