2012-02-01 76 views
0

我有这样的代码: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个值“意大利”,只插入一个意大利时间);
  2. 把DropDownList中的字符串放在上面(所以如果我有意大利,请打印意大利);

尝试nation.Distinct()nation.ToUpperString()但似乎这些方法不存在。

我在(不幸)的老项目,.NET 2.0,所以没有LINQ。

+1

LINQ在.NET 2.0运行时 - 请看看 - HTTP ://stackoverflow.com/questions/2138/linq-on-the-net-2-0-runtime – adatapost 2012-02-01 11:53:40

回答

0

找到了解决办法:

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

和CSS上的DropDownList:

style="text-transform:uppercase;" 
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); 
+0

DataTabel不包含AsEnumerable()的定义(我在.NET 3.5上) – markzzz 2012-02-01 08:59:52

+0

@markzzz - 它在那里 - http://msdn.microsoft.com/en-us/library/system.data.datatableextensions.asenumerable (v = vs.90).aspx – adatapost 2012-02-01 09:02:41

+0

所以不知道为什么它不起作用... – markzzz 2012-02-01 09:15:13

相关问题