是否可以将 LinqDataSource.OrderBy 设置为方法的结果?
我没有广泛使用 LINQ,但使用得越多,我就越意识到它的强大功能。如果您想从有界项上的属性进行排序,那么使用 LinqDataSource.OrderBy 子句显然很容易,但如果您想根据方法返回对项进行排序怎么办?以此类为例(请忽略古怪的设计 - 它只是用来强调我的观点):
public class DataItem
{
private string Id { get; set; }
private int SortValue { get; set; }
public DataItem(string id, int sortValue)
{
this.Id = id;
this.SortValue = sortValue;
}
public int GetSortValue()
{
return SortValue;
}
}
有没有一种方法可以在 LinqDataSource 上设置 orderby 表达式,以便它使用从 GetSortValue 返回的值(即其他成员的顺序)比属性)但不改变 DataItem 类?
I haven't used LINQ extensively but the more I use it the more I realize how powerful it can be. Using the LinqDataSource.OrderBy clause is obviously easy if you want to sort from a property on the bounded items but what if you want to sort the items based on a method return? Take this class for instance (please ignore the quirky design - it's just used to emphasize my point):
public class DataItem
{
private string Id { get; set; }
private int SortValue { get; set; }
public DataItem(string id, int sortValue)
{
this.Id = id;
this.SortValue = sortValue;
}
public int GetSortValue()
{
return SortValue;
}
}
Is there a way that I can set the orderby expression on the LinqDataSource so that it uses the value returned from GetSortValue (i.e order by other members than properties) but without altering the DataItem class?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
MSDN docs 提到确实可以进行自定义排序,但我可能误解了你的问题。
The MSDN docs mention that it is indeed possible to do custom sorting but I might have misinterpreted your question.
如果该方法没有参数,您可以用属性包装它吗?
编辑:如果参数是常量或类字段/属性,这也将起作用。
If the method has no parameters you could wrap it with a property?
Edit: This will also work if the parameters are constants or class fields/properties.