【问题标题】:GridView and Linq Query sortingGridView 和 Linq 查询排序
【发布时间】:2010-08-20 15:06:23
【问题描述】:

我正在使用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);

【问题讨论】:

  • 需要什么会员名?你能举个例子,一些代码吗?谢谢!

标签: c# asp.net linq gridview


【解决方案1】:

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

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

【讨论】:

  • 是的,我已经很想创建一个自定义类了,但是我该如何使用反射呢?你有什么可以指点我做的吗?我已经可以使用列表中的第一个元素来使用绑定在表格上的网格来做到这一点。但我不知道我应该做哪个演员才能检索到该信息。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多