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的多语言.希望知道的兄弟指教.

posted @   孤独侠客  阅读(1155)  评论(3编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示