按RowDataBound事件中填充的列对GridView排序

本文关键字:GridView 排序 填充 RowDataBound 事件 | 更新日期: 2023-09-27 18:15:14

我有一个GridView,其中填充了用户信息。

System.Web.Security.MembershipUserCollection users = System.Web.Security.Membership.GetAllUsers();        
grid.DataSource = users;
this.DataBind();

在RowDataBound事件中,它查找其他用户信息,并用这些信息填充列。

由于GetAllUsers()函数的性质,网格按用户名排序。我希望它按FullName排序,这是在rowdataboundeven代码中查找和填充的列之一。我该怎么做呢?我所看到的关于GridView排序的所有内容都是在将数据源应用于网格之前对其进行排序,但在这种情况下,我还没有该数据。

按RowDataBound事件中填充的列对GridView排序

你可以在数据绑定之前对gridview的数据源进行排序:

System.Web.Security.MembershipUserCollection users = System.Web.Security.Membership.GetAllUsers();
grid.DataSource = users.OfType<MembershipUser>().OrderBy(GetUserFullName, StringComparer.OrdinalIgnoreCase);
private static string GetUserFullName(MembershipUser user)
{
    // return here user's full name
    return user.Email;
}