【发布时间】:2011-05-21 17:45:57
【问题描述】:
我有一个问题困扰了我很长一段时间,由于我是 .NET 的初学者,我迫切需要帮助。
我正在使用 GridView 来显示查询结果。但是,我没有将其直接注入实体/LINQ 数据源,而是手动编写了诸如加载、排序和分页之类的事件。问题出在排序中,我无法保持升序/降序状态。我能想到的一个可能的解决方案是缓存状态,但是,我觉得还有另一种更简洁的方法。因此,你们能建议我其他更适合的想法吗?
提前非常感谢!
下面是我用于排序的代码。显然,e.SortDirection 将始终等于ascending,无论我点击了多少次列的标题。
switch (e.SortExpression)
{
case "Album":
if (e.SortDirection == SortDirection.Ascending)
_orderedResult = from doc in _result
orderby doc.DocumentAlbum.Name ascending
select doc;
else
_orderedResult = from doc in _result
orderby doc.DocumentAlbum.Name descending
select doc;
break;
case "Category":
if (e.SortDirection == SortDirection.Ascending)
_orderedResult = from doc in _result
orderby doc.DocumentCategory.Name ascending
select doc;
else
_orderedResult = from doc in _result
orderby doc.DocumentCategory.Name descending
select doc;
break;
case "Title":
if (e.SortDirection == SortDirection.Ascending)
_orderedResult = from doc in _result
orderby doc.Title ascending
select doc;
else
_orderedResult = from doc in _result
orderby doc.Title descending
select doc;
break;
case "Description":
if (e.SortDirection == SortDirection.Ascending)
_orderedResult = from doc in _result
orderby doc.Description ascending
select doc;
else
_orderedResult = from doc in _result
orderby doc.Description descending
select doc;
break;
case "DateCreated":
if (e.SortDirection == SortDirection.Ascending)
_orderedResult = from doc in _result
orderby doc.DateCreated ascending
select doc;
else
_orderedResult = from doc in _result
orderby doc.DateCreated descending
select doc;
break;
case "DateUpdated":
if (e.SortDirection == SortDirection.Ascending)
_orderedResult = from doc in _result
orderby doc.DateUpdated ascending
select doc;
else
_orderedResult = from doc in _result
orderby doc.DateUpdated descending
select doc;
break;
}
【问题讨论】:
-
你是在 asp.net 做这个吗?
-
你可以从这个帖子stackoverflow.com/questions/5947780/…得到想法
标签: linq sorting gridview direction