想拥有可点击的列标题,例如点击TagCode一次,然后按顺序排序,然后又反转。数字相同。
使用MVC3 / Razor和LightSpeed(ORM)。
我知道网格例如http://mvccontrib.codeplex.com/可能是前进的方向。但由于我不需要分页或过滤,我现在想保持简单。
问题是否有一个简单的代码示例(可能带有向上/向下图标)有帮助?
答案 0 :(得分:2)
@戴夫
对不起,我在第一次回答时错过了你的要点 如果要使用纯MVC3实现排序, 我可以通过以下步骤
来做到这一点<小时/> 列出操作方法
public ActionResult Index(string sortColumn, bool? asc)
{
if (string.IsNullOrWhiteSpace(sortColumn))
sortColumn = "Number";
asc = asc ?? true;
SortDirection sortDirection = asc == true ? SortDirection.Ascending : SortDirection.Descending;
var query = _service.GetTags().OrderBy(sortColumn, sortDirection);
return View(query);
}
Html帮助方法
public static MvcHtmlString ActionLinkWithColumnOrder(this HtmlHelper helper,
string columnName,string action,string currentColumn,bool currentOrder)
{
object routeValues;
object htmlAttributes = null;
if (columnName == currentColumn)
{
routeValues = new { sortColumn = columnName, asc = !currentOrder };
htmlAttributes = new { @class = currentOrder ? "sort_asc" : "sort_desc" };
}
else
{
routeValues = new { sortColumn = columnName };
}
return helper.ActionLink(columnName, action, routeValues, htmlAttributes);
}
列表视图页面
...
@ Html.ActionLinkWithColumnOrder(“TagCode”,“Index”,(string)ViewBag.sortColumn,(bool)ViewBag.asc)
...
@ Html.ActionLinkWithColumnOrder(“Number”,“Index”,(string)ViewBag.sortColumn,(bool)ViewBag.asc)
欢乐快乐!
Sangsu PARK(http://supremeware.blogspot.com)
答案 1 :(得分:1)
@戴夫
如何使用mvccontribgrid只按如下方式进行排序:
IMO,使用mvccontribgrid可能会带来更简单的代码。 这是控制器代码,例如
public class HomeController : Controller
{
private AlbumService _service;
public HomeController()
{
_service = new AlbumService();
}
public ActionResult Index(GridSortOptions gridSortOptions)
{
var vm = new ViewModel<Album>()
{
DefaultSort = "AlbumId",
GridSortOptions = gridSortOptions,
List = _service.GetAlbums()
.OrderBy(gridSortOptions.Column, gridSortOptions.Direction),
};
return View(vm);
}
public ActionResult Details(int id)
{
var album = _service.GetAlbum(id);
ViewBag.RouteDicForList = Request.QueryString.ToRouteDic();
return View(album);
}
}
我附加了简单的排序功能源代码here和简单的服务&amp; EF4。
另外,我发布了全功能的mvccontrib网格过滤&amp;传阅文章here。