我想按照以下
命令我的gridview产品名称
FL - STATEWIDE (Primary)
FL - LEE COUNTY
FL - OKALOOSA COUNTY
MS - STATEWIDE (Primary)
MS - KENT COUNTY
我不能按产品订购。因为如果产品名称中包含主要这个词,那么它应该首先出现。
我怎样才能做到这一点?
答案 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 COUNTYFL - 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 COUNTYFL - OKALOOSA COUNTY
MS - STATEWIDE(小学)
MS - KENT COUNTY