2010-08-20 2 views
1

Я использую запрос Linq для заполнения GridView.GridView и Linq Сортировка запросов

Затем я установил его на Datasource.

В событии сортировки я хотел бы получить анонимный тип, который генерирует запрос, и найти имя участника.

Можно ли это сделать?

Вот Exemple запроса

var q = from inboundCall in dc.GetTable<InboundCall>() 
join employee in dc.GetTable<Employee>() on inboundCall.EmployeeID equals employee.ID 
join code in dc.GetTable<Code>() on inboundCall.CodeID equals code.ID 
join site in dc.GetTable<Site>() on inboundCall.SiteID equals site.ID 
where inboundCall.IsSuccess == true 
        select new 
           { 
            EmployeeNumber = employee.Number, 
            EmployeeName = employee.Name, 
            CallerID = inboundCall.CallerID, 
            SiteName = site.Name, 
            CallDate = inboundCall.CallDate, 
            CodeName = code.Name 
           }; 

А потом

gridData.DataSource = q; 

Что я могу сделать в сортировочный событии retieve типа Anonymous и сделать что-то вроде этого

employeeList.Sort((x, y) => ((Int32)x.GetType().GetProperty(e.SortExpression).GetValue(x, null)).CompareTo((Int32)y.GetType().GetProperty(e.SortExpression).GetValue(y, null)) * sortValue); 
+0

Какое вам нужно членство? Можете ли вы привести пример, какой-то код? Благодаря! –

ответ

0

Вы можете сделать это с помощью отражения, или вы можете использовать динамический LINQ librar y, чтобы добавить предложение OrderBy.

Или лучшим вариантом может быть создание фактического класса/структуры, представляющего данные, которые вы будете получать.

+0

Да, я уже начал создавать пользовательский класс, но как бы я это сделал с отражением? Любая вещь, которую вы можете указать мне на это? Я уже могу сделать это с сеткой, привязанной к таблице, используя первый элемент в списке. Но я не знаю, какое кастинг я должен сделать, чтобы получить эту информацию. Любая идея? –

Смежные вопросы