Asp.Net Localization实现之GridView

      正在做一个项目相当烦人,不仅要实现界面多语言国际化,而且所录入的产品以及其它一些数据都要有多语言支支持
数据的多语言已经够烦锁.界面这里还有一个头疼的问题,其它的直接用资源文件都可以实现,GridView的列名遇到了问题.现在有两个解决方法:

1.通过后台代码动态的修改列名:
     GridView1.Columns[0].HeaderText = LocalizationUtility.GetText("hdrActive");
    优点:比较灵活,资源文件也可以重复利用.资源文件的位置也没有限制.
    缺点:列过头的时候比较繁琐,而且对应起来不太方便.

2.直接在前台绑定资源文件
    <asp:BoundField  Headertext= "<%$ Resources:LabelResources,HeaderCreateDate"%>
DataField="CreateDate" ReadOnly="True" SortExpression="CreateDate"  />
   优点:通过直接把列名和资源名方便的对应起来,修改起来也比较方便. 
   缺点: 这种方式只有对当前页资源有效,必须通过在页面的设计界面, Tools / Build local resource ,生成资源文件.目前还不知道,这种方式怎么能够重复利用多语言资源.而且我的资源文件在另外的一个项目里.


ps:改变一下方式就如下调用
  <asp:TemplateField>
                    <HeaderStyle HorizontalAlign="Center"   Width="150" />
                    <HeaderTemplate>
                        <%= LocalizationUtility.GetText("OptionName")%>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <%#Eval("OptionName")%>
                    </ItemTemplate>
   </asp:TemplateField>

利用ASP.NET实现这个GridView的多语言还真是麻烦.上个项目用ExtJs框架实现多语言相当容易.怀念.可能会有更好的方式实现GridView的多语言.希望知道的兄弟指教.

原文地址:https://www.cnblogs.com/lonely7345/p/1276100.html