Вот что я придумал для того, чтобы иметь дело с условным Descending. Вы можете комбинировать это с другими методами генерации динамической функции keySelector
.
public static IOrderedQueryable<TSource> OrderBy<TSource, TKey>(this IQueryable<TSource> source,
System.Linq.Expressions.Expression<Func<TSource, TKey>> keySelector,
System.ComponentModel.ListSortDirection sortOrder
)
{
if (sortOrder == System.ComponentModel.ListSortDirection.Ascending)
return source.OrderBy(keySelector);
else
return source.OrderByDescending(keySelector);
}
Использование:
//imagine this is some parameter
var direction = System.ComponentModel.ListSortDirection.Ascending;
query = query.OrderBy(ec => ec.MyColumnName, direction);
Обратите внимание, что это позволяет вам связать это расширение .OrderBy
с новый параметр на любой IQueryable.
// perhaps passed in as a request of user to change sort order
// var direction = System.ComponentModel.ListSortDirection.Ascending;
query = context.Orders
.Where(o => o.Status == OrderStatus.Paid)
.OrderBy(ec => ec.OrderPaidUtc, direction);
Сохраните img id в функции drop()
:
function drag(ev) {
ev.dataTransfer.setData("img", ev.target.id);
}
function drop(ev){
var data = ev.dataTransfer.getData("img");
sessionStorage.setItem("imgData", data);
}