Я пытаюсь сортировать GridView с использованием LINQ2SQL с несколькими таблицами. Поскольку столбцы в сетке содержат данные из нескольких таблиц, как мне сообщить LINQ, какое имя столбца сортировать.GridView Сортировать по LINQ2SQL с несколькими таблицами
Например, пользователь нажимает на первую колонку (POCNum
), которая находится в таблице p
, поэтому я бы использовал p.POCNum
до orderby
. Задача e.SortExpressio
n содержит только слово POCNum
. Невозможно связать это с таблицей p
. Поэтому, если кто-то нажимает на столбец Contact_ID
, который находится в таблице c
Мне нужно orderby c.Contact_ID
в запросе LINQ.
Любые предложения будут оценены.
protected void GridView1_Sort(Object sender, GridViewSortEventArgs e)
{
DataClasses1DataContext db = new DataClasses1DataContext();
var results = (from p in db.POCs<BR/>
join c in db.Contacts on p.POC_ID equals c.POC_ID
join a in db.Auxilaries on p.POC_ID equals a.POC_ID
join l in db.Legends on p.Basis equals l.Legend_code_value
orderby e.SortExpression // problem -
//e.SortExpression does not contain table reference
where p.DebtorObj_ID == Convert.ToInt32(ddlDebtor.SelectedItem.Value)
select new { p.POC_ID, p.POC_Date, p.POCNum, p.Total_Amt, p.Secure_Amt,
a.AMailing_Name1, l.Legend_Description }).ToList();
GridView1.DataSource = results;
GridView1.DataBind();
}
Почему бы не связать GridView с данными один раз и разрешить сортировку GridView, например, используя метод Sort с выражением? – kaj
Asp.net? Winforms? Wpf? – kaj
Я использую ASP.NET. Если бы вы могли привести пример метода сортировки с выражением, которое было бы здорово. Я не могу заставить его работать из-за разных столбцов из нескольких таблиц. – user1257206