У меня есть проблема, которая меня долго мучила, и я остро нуждаюсь в помощи, потому что я новичок в .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;
}