【问题标题】:DataView : Upper the strings and distinct them?DataView :将字符串放在上面并区分它们?
【发布时间】:2012-02-01 18:26:24
【问题描述】:

我有这个代码:

<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 中的字符串向上(所以如果我有意大利,请打印 ITALY);

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

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

【问题讨论】:

标签: c# .net linq dataview


【解决方案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);

【讨论】:

  • DataTabel 不包含 AsEnumerable() 的定义(我在 .NET 3.5 上)
  • @markzzz - 在那里 - msdn.microsoft.com/en-us/library/…
  • 该死!对不起!我在一个旧项目上,.NET 2 :(这就是为什么我也不能使用 linq...
【解决方案2】:

找到了解决办法:

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

DropDownList 上的 CSS :

style="text-transform:uppercase;"

【讨论】:

    猜你喜欢
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-28
    相关资源
    最近更新 更多