我有一个gridview有几列,其中3我想排序。 数据的来源保存在会话中。与动态linq排序gridview
protected void MyGridHistorySort(object sender, GridViewSortEventArgs e)
{
var TheColumn = (e.SortExpression).ToString();
TheDataHistory = (List<ViewDataHistoryModel>)Session["SessionDataHistory"];
var test = "data.DataDate";
var NewDataSource = from data in TheDataHistory
orderby test
select data;
MyGridHistory.DataSource = NewDataSource;
MyGridHistory.DataBind();
DataDate是列表中的有效列,但orderby语句不起作用。理想情况下,我希望通过编写诸如test =“data。”之类的变量来排序变量TheColumn。然后添加基于布尔值的排序方向。我看了OrderBy扩展方法NewDataSource.OrderBy(test);但那也行不通。
我错过了什么让我的代码工作?
谢谢。
是的,对于一列工程但我想让它适用于所有其他列,并通过接受字符串参数来获得顺序。 OrderBy扩展方法如何工作? – frenchie 2011-02-02 19:07:40
我在这种情况下可能会做的是使用相同的语句,只有没有orderby子句,然后有一个switch语句,它通过参数传入的任何字段来命令它们。我正在编辑我的答案,以显示此... – khr055 2011-02-02 19:13:32