在Gridview行中自定义顺序

时间:2014-01-30 09:12:44

标签: c# gridview

我想按照以下

命令我的gridview

产品名称

FL - STATEWIDE (Primary)

FL - LEE COUNTY

FL - OKALOOSA COUNTY

MS - STATEWIDE (Primary)

MS - KENT COUNTY

我不能按产品订购。因为如果产品名称中包含主要这个词,那么它应该首先出现。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

一旦读入数据表,就可以使用LINQ来订购它

        dtbl = (
                 from item in dtbl.AsEnumerable()
                 select item
               ).OrderBy(x => x.Field<string>("Product Name").Contains("Primary") ? 0 : 1).
                 ThenBy(x => x.Field<string>("Product Name")).CopyToDataTable();

输出

FL - STATEWIDE(小学)

MS - STATEWIDE(小学)

FL - LEE COUNTY

FL - OKALOOSA COUNTY

MS - KENT COUNTY

如果您需要先按州订购(主要位于顶部)

        dtbl = (
                 from item in dtbl.AsEnumerable()
                 select item
               ).OrderBy(x => x.Field<string>("Product Name").Substring(0,2))
                 ThenBy(x => x.Field<string>("Product Name").Contains("Primary") ? 0 : 1).
                 ThenBy(x => x.Field<string>("Product Name")).CopyToDataTable();

输出

FL - STATEWIDE(小学)

FL - LEE COUNTY

FL - OKALOOSA COUNTY

MS - STATEWIDE(小学)

MS - KENT COUNTY