GridView和Linq查询排序

时间:2010-08-20 15:06:23

标签: c# asp.net linq gridview

我正在使用Linq查询来填充GridView

然后我将其设置为Datasource

在排序事件中,我想检索查询生成的匿名类型并找到成员名称。

是否可以这样做?

这是查询的例子

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;

我可以在排序事件中做些什么来解除匿名类型并执行类似的操作

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

1 个答案:

答案 0 :(得分:0)

您可以使用反射执行此操作,也可以使用动态LINQ库添加OrderBy子句。

或者,更好的选择可能是创建一个代表您将检索的数据的实际类/结构。