【问题标题】:ASP.NET: Built-in Gridview Sorting of Generic.List(Of T)ASP.NET:Generic.List(Of T) 的内置 Gridview 排序
【发布时间】:2010-12-10 00:35:33
【问题描述】:

问题是 Generic.List(Of T) 的内置排序是否可行。我们有一个自定义的网格视图,它与已编译的类 DLL 一起编译到它自己的 DLL 中。现在,我可以通过将 Generic.List 转换为 iCollection 来获取计数以进行分页,但我可以创建某种排序函数来接受任何 Generic.List(Of AnyType) 并进行相应排序。

我已经能够将 Generic.List(Of AnyType) 转换为 Generic.List(Of Object),并且我认为我可以将该集合中的对象转换为相同的类型并进行排序,但我不确定这是否可能。我现在担心的是,由于类处于编译状态,我将无法将对象转换回它们的原始类型。

这是一个安全的假设,还是有可能做到这一点?简单地跳过通用列表的控件排序并简单地允许开发人员通过 LINQ 或其他方式在事件中进行排序是否更有利。

【问题讨论】:

    标签: asp.net generics gridview casting


    【解决方案1】:

    通用列表已经有 Sort(和 Count,因为它实现了 ICollection)

        public void Sort();
        public void Sort(IComparer<T> comparer);
        public void Sort(int index, int count, IComparer<T> comparer);
        public void Sort(Comparison<T> comparison);
    

    为什么不使用这些?

    public class SomeGridViewWrapper<T>
    {
        private List<T> _dataSource;
    
        public void Sort(Comparison<T> comparison)
        {
            _dataSource.Sort(comparison);
        }
    }
    

    【讨论】:

    • 正确,但我必须在 Gridview 控件端将其转换为未知类型。我通常将它转换为一个对象,但问题是试图将它转换回来。
    • 好吧,我会考虑让您的 GridView 类像 SomeGridViewWrapper 一样通用,然后您就不必将其作为对象处理。
    猜你喜欢
    • 2021-05-25
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 2010-10-02
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多