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

时间:2011-11-21 13:28:23

标签: c# asp.net sorting gridview

我有一个填充了用户信息的GridView。

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

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

由于GetAllUsers()函数的性质,网格按用户名排序。我希望它可以通过FullName排序,FullName是在RowDataBound甚至代码中查找和填充的列之一。我怎样才能做到这一点?我在为GridView排序时看到的所有东西都让你在将数据源应用到网格之前对其进行排序,但在这种情况下我还没有那些数据。

1 个答案:

答案 0 :(得分:1)

您可以在数据绑定之前对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;
}