DataView:将字符串放在上面并区分它们?

时间:2012-02-01 08:35:42

标签: c# .net linq dataview

我有这段代码:

<asp:DropDownList AutoPostBack=False id="nation" runat="server" DataTextField="Title" DataValueField="Desc"></asp:DropDownList>

DataView nation = new DataView(new MyObjects().RsTable);
nation.Sort = "Title DESC";
DropNazioni.DataSource = nation;
DropNazioni.DataBind();

我想做的是:

  1. 在DropDownList中只放置不同的值(所以如果我有2个值“Italy”,则只插入一次意大利语);
  2. 将DropDownList中的字符串置于上方(如果我有意大利,请打印ITALY);
  3. 尝试nation.Distinct()nation.ToUpperString(),但似乎这些方法不存在。

    我(不幸的是)一个旧的项目,使用.NET 2.0,所以没有LINQ。

2 个答案:

答案 0 :(得分:1)

尝试GroupBy

var result = MyObjects().RsTable
                        .AsEnumerable()
                        .GroupBy(p => p.Field<string>("Nation"))
                        .Select(p=>p.Key);

或者

var result = MyObjects().RsTable
                        .AsEnumerable()
                        .GroupBy(p => p.Field<string>("Nation").ToUpper())
                        .Select(p=>p.Key);

答案 1 :(得分:0)

找到解决方案:

DropNazioni.DataSource = nation.ToTable(true,new string[] { "Title", "Desc" });
DropDownList上的

和CSS:

style="text-transform:uppercase;"