技术开发 频道

ASP.NET MVC中对数据进行排序的方法

  步骤3:创建视图

  鼠标右键点控制器中的Sortable action,在弹出的菜单中选择添加视图选项。从添加视图对话框中,选中“Create a strongly-typed view “复选框,然后从“View data class “下拉选择Web.Models.ProductGridModel,点击确定。这时会创建视图Sortable.aspx,如下图:

在ASP.NET MVC中对数据进行排序

  接下来,修改代码如下:

<table class="grid">
  
<tr>
      
<th>Product</th>
      
<th>Category</th>
      
<th>Qty/Unit</th>
      
<th>Price</th>
      
<th>Discontinued</th>
  
</tr>

<% foreach (var item in Model.Products) { %>
  
  
<tr>
      
<td class="left"><%: item.ProductName %></td>
      
<td class="left"><%: item.Category.CategoryName %></td>
      
<td class="left"><%: item.QuantityPerUnit %></td>
      
<td class="right"><%: String.Format("{0:C}", item.UnitPrice) %></td>
      
<td>
        
<% if (item.Discontinued) { %>
            
<img src="<%=Url.Content("~/Content/cancel.png") %>" alt="Discontinued" title="Discontinued" />
        
<% } %>
      
</td>
  
</tr>
  
<% } %>

</table>

  上面的代码跟上一篇文章中你看到的基本没什么区别,唯一的区别,其实是在foreach语句中,在上一篇文章中,是:

在ASP.NET MVC中对数据进行排序

  foreach(var item in Model) { ... },而本文中,其模型变成了ProductGridModel实例,其产品属性包含产品的集合。因此,在foreach循环遍历Model.Products。运行后,你会发现访问页面时默认的是按产品的升序排列的:

  现在网格的列标题是文本,等下我们会将其修改为超级链接,但现在我们也可以马上在浏览器中,通过输入的方法体验下了,举例来说,如果你输入:

  www.yoursite.com/Products/Sortable?sortBy=UnitPrice&ascending=false- 你应该看到按 照价格从高到低排列的产品。

0
相关文章