【问题标题】:a ListView, a LinqDataSource, linq-to-sql and orderingListView、LinqDataSource、linq-to-sql 和排序
【发布时间】:2008-11-07 15:45:29
【问题描述】:

所以我正在编写一个页面来进行一些报告并且它非常动态,用户可以对数据进行分组和对列进行排序。我已经能够得到我的动态分组,然后排序,除了现在我生成的 linq-to-sql sql order by 语句与我想要的相反。我想我需要弄清楚在 ListView 中触发 Sorting 事件时如何获取从 LinqDataSource 返回的 Result,以便我可以按子句附加分组顺序。

目前我正在覆盖 LinqDataSource 选择事件以提供它的结果并在那里进行动态分组,但是结果由列表视图上的排序修改,我认为必须有某种方法可以在期间获得该结果排序或排序事件。

任何见解都将不胜感激,同时我将尝试自己解决这个问题。

【问题讨论】:

    标签: asp.net linq linq-to-sql


    【解决方案1】:

    太棒了,我想我找到了答案,在我的 LinqDataSource 上将 AutoSort 设置为 false,然后自己对数据进行排序,因为我已经为其他数据排序了。

    【讨论】:

      【解决方案2】:

      您可以使用 Linq 根据用户输入操作查询结果 (IEnumerables)。例如(非常伪代码事件处理程序如下):

      public void OnUserClickNameColumn(object sender, EventArgs e){
        var data = DataProvider.RetrieveAllUsers();
        // switch between sorting asc and desc when user clicks on a column head
        SessionHelper.CurrentUser.NameColumnSort = !SessionHelper.CurrentUser.NameColumnSort;
        if(SessionHelper.CurrentUser.NameColumnSort) // true =  sort asc else sort desc
          UserDataGrid.DataSource = data.OrderBy(x=>x.Name);
        else
          UserDataGrid.DataSource = data.OrderByDescending(y=>y.Name);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-23
        • 1970-01-01
        • 1970-01-01
        • 2010-11-17
        • 1970-01-01
        • 2010-12-22
        • 2012-07-10
        相关资源
        最近更新 更多