正在做一个项目相当烦人,不仅要实现界面多语言国际化,而且所录入的产品以及其它一些数据都要有多语言支支持
数据的多语言已经够烦锁.界面这里还有一个头疼的问题,其它的直接用资源文件都可以实现,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的多语言.希望知道的兄弟指教.