通过linq数据源修改asp.net网格

时间:2012-04-30 11:30:01

标签: c# asp.net linq linq-to-sql

问候语, 我正在使用一个从linq表达式获取源代码的网格。

以下是linq:

var data = from row in tempCity.AsEnumerable()
           group row by row.Field<string>("City") into city
           select new
           {
              City = city.Key, 
              Count = city.Count()
           };

将“数据”分配给网格的数据源后,我得到了我需要的结果。 当我尝试使我的应用程序成为一种多语言友好的应用程序时,问题就出现了,我找不到将Grid的City和Count标题翻译成另一种语言的方法。

我试图做以下事情: 1.而不是城市,在linq表达式中写入GetLocalResource(“City”)而不是术语“City”,它不起作用。

2.然后以编程方式更改网格的属性,因为每个动作的linq表达式不同,取决于我所需的客户端,我的aspx页面上没有预制列,所以我无法访问grid.Column属性 - 始终标记为0。

3.在DataTable中输出linq的所有数据,我知道这个应该可以工作,但是这样做感觉不对,看起来有点笨拙,我想要一个更清洁的解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为解决方案1将是您的最爱。但是您的LINQ查询被转换为SQL查询,当然没有像GetLocalResource这样的SQL方法。

显然,您的数据库仅存储城市代码,并且文化相关名称位于资源中。 我会尝试以下方法:使用您现有的LINQ语句来获取数据。将城市转换为视图中的本地化字符串,例如

<asp:Literal Text='<%# GetLocalResource(Eval("City"))' runat="server" />