【问题标题】:ASP.net: How to make list of object sortable when bind to control such as gridview?ASP.net:绑定到控件(例如gridview)时如何使对象列表可排序?
【发布时间】:2009-01-22 18:26:34
【问题描述】:

我有一门课,我们称之为 Blah。我使用 ObjectDataSource 从数据库中获取数据,并将值绑定到 Blah 的属性,例如,Column Foo 在我的班级中是 Blah.Foo。我可以将带有 Blah 列表的 ObjectDataSource 绑定到网格视图,但由于数据源不是数据表,我无法使其可排序。有没有人有关于如何使对象可排序以便像gridview这样的控制的链接或教程。

谢谢

杰克

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    首先,您可以在您的字段上使用带有 SortExpression 的 gridview 的 AllowSorting 属性。这是tutorial

    其次,您可以制作一个通用的 Blah 列表,然后调用 .Sort()

    List<Blah> test = new List<Blah>;
    test.AddRange(ObjectDataSource);
    test.Sort();
    

    msdn information

    第三,您可以直接从像

    这样的表达式中对 gridview 进行排序
    CustomersGridView.Sort(expression, direction);
    

    link

    【讨论】:

      【解决方案2】:

      您需要实现 IComparable 接口。您可能还需要实现其他接口,但它们都是一样的。

      【讨论】:

        【解决方案3】:

        您必须实现 Icomparable 然后将排序表达式从 gridview 传递给您的自定义排序方法。

        Imar Spaanjaars 有一个很好的教程和代码示例,用于创建可以绑定到 asp.net 控件的可排序业务对象集合

        【讨论】:

          【解决方案4】:

          您可能想尝试使用匿名代表对列表进行排序:

          List<YourObject> MyList = new List<YourObject>();
          
          MyList.Sort(delegate(YourObject o1, YourObject o2)
          { return o1.SomeProperty.CompareTo(o2.SomeProperty);});
          

          更多关于匿名和委托:MSDN

          【讨论】:

            猜你喜欢
            • 2012-07-09
            • 1970-01-01
            • 2014-01-13
            • 2012-09-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-10-19
            相关资源
            最近更新 更多