【问题标题】:Sort a GridView thats bound to a Linq query对绑定到 Linq 查询的 GridView 进行排序
【发布时间】:2011-09-25 15:08:58
【问题描述】:

我有一个使用 Linq 查询填充的 GridView

var usersToApprove = from rl in QVDash.Permisisons
                           join u in QVDash.Userson rl.UserId equals u.UserId
                           join d in QVDash.Dashboards on rl.DashboardId equals d.DashboardId 
                           where (u.ApprovedBy == approverId || isGod)
                           select new
                           {
                               PermissionId = rl.PermissionId,
                               Name = u.Name,
                               Area = u.Area,
                               Dashboard = d.DashboardName,
                               OpUnit = rl.Operational_Unit,
                               Cost_Centre = rl.Cost_Centre,
                               Fund = rl.Fund,
                               Project = rl.Project,
                               Approver = (from a in QVDash.Users where a.UserId == u.UserId && a.UserId == u.ApprovedBy select a.Name).FirstOrDefault()
                           };

        grd_CurrentUsers.DataSource = usersToApprove ;
        grd_CurrentUsers.DataKeyNames = new string[] { "PermissionId" };
        grd_CurrentUsers.DataBind();

然而,这会带来一个问题,即 GridView 不允许排序。

我尝试了一些我发现的选项来构建自定义排序功能,但是我发现这充其量只是粗略的,例如:只有一种方式排序、分页重置排序等.

我想知道是否有更好的方法来做到这一点。

我知道将 gridview 绑定到数据源可以解决排序问题,但是我不知道如何将 Linq 绑定到数据源。有可能吗?

【问题讨论】:

  • 上面的代码是怎么调用的?
  • 顺便说一句,没有必要在你的标题中加入“(ASP.NET C#)”之类的东西。这就是标签的用途。
  • @John 我这样做是因为我看到人们因为不看标签而得到错误的响应
  • 因为人们可以使用标签来过滤他们不感兴趣的问题,并用正确的标签突出问题,我建议你使用标签而不是标题。标题没有这两个特征。
  • @Nix 我正在做的是从几个地方调用它作为方法,然后该方法运行上面的代码,并使用.DataSouce 和.DataBind 将输出绑定到gridview。当我对gridview进行更改时,我这样做是为了更新它

标签: c# asp.net linq gridview


【解决方案1】:

您尝试过 LinqDataSource 控件吗?看看这个链接。 http://weblogs.asp.net/scottgu/archive/2007/09/07/linq-to-sql-part-9-using-a-custom-linq-expression-with-the-lt-asp-linqdatasource-gt-control.aspx

关键部分:“要处理自定义查询场景,您可以实现一个事件处理程序来处理控件上的“选择”事件。在此事件处理程序中,您可以编写任何想要检索数据模型结果的代码。”

这允许您使用自定义 LINQ 查询进行排序、分页等。

【讨论】:

  • 我正在使用 Linq to Entities :/
【解决方案2】:

终于用这个网站的排序代码弄明白了 http://forums.asp.net/t/1368247.aspx

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 1970-01-01
    相关资源
    最近更新 更多