asp.net web页面元素的多语言化(多国语化)实现分享

开发的一些系统,经常要求支持多语言(例如日文,英文等),以前大部分做法是创建一个资源文件,

将每一个标签,按钮等标题文字预先用各种语言设定保存好,

在程序中根据选择的语言来显示对应文字。

这样做的缺点是如果每次改动或增加一个控件,都需要程序开发人员刻意做多语言对应,

如果用户想要改某些标题的描述,还需要开发人员改动资源文件并替换到程序发布目录。

经过调查实验,最终想了一个办法来较好地对应此问题:

在每一个web页面,设定一个只有最高级的管理权限才能看到的一个按钮(例如叫“设定”),

来负责画面上各固定标题的设置,只要点击这个按钮,就通过控件遍历的方法来显示该页面上所有希望控制的

控件(比如Label,button,gridview,linkbutton等),   将其各种语言的内容显示到一个小页面上,让用户自己设定,

然后保存到DB。下次打开时就按照DB设定好的内容初期化页面控件的标题。

最终用户可自由设定,也无需开发人员不停修改。

画面效果如下:

点击“设定”

下面举例,循环设定页面中控件(TextBox,DropDownList等)不可用的代码:


代码如下:

Public Shared Sub LoopingControlsDisabled(ByVal oControl As Control)
Dim frmCtrl As Control
Dim btn As Button
For Each frmCtrl In oControl.Controls
If TypeOf frmCtrl Is TextBox Then
DirectCast(frmCtrl, TextBox).Enabled = False
End If
If TypeOf frmCtrl Is DropDownList Then
DirectCast(frmCtrl, DropDownList).Enabled = False
End If
If TypeOf frmCtrl Is CheckBox Then
DirectCast(frmCtrl, CheckBox).Enabled = False
End If
If TypeOf frmCtrl Is RadioButton Then
DirectCast(frmCtrl, RadioButton).Enabled = False
End If
If TypeOf frmCtrl Is FileUpload Then
DirectCast(frmCtrl, FileUpload).Enabled = False
End If
If TypeOf frmCtrl Is Button Then
btn = DirectCast(frmCtrl, Button)
'If btn.Text.Equals("关闭") OrElse btn.ID.Equals("btnClose") Then
If btn.ID.Equals("btnClose") Then
'仅关闭按钮可用
btn.Enabled = True
Else
btn.Enabled = False
End If
End If
If frmCtrl.HasControls Then
LoopingControlsDisabled(frmCtrl)
End If
Next
End Sub

(0)

相关推荐

  • asp.net 支持多语言站点的实现方法

    1,在web站点中新建两个resources文件如下 Resources.resx中的文件信息 Resources.en-us.resx中的文件信息 Default.aspx的代码 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Culture="Aut

  • Asp.Net Core MVC项目实现多语言实例(Globalization/Localization)

    正好最近手上在给一个Razor MVC项目实现一个多语言功能,叫Globalization也好,Localization也好,whatever.最终要实现的效果呢,就是一键切换全站语言,并且开发的时候只需要写一套页面. 下面进入正题 首先,我们要创建一个CultureConfigurer类,用于管理本地化资源,完成"翻译"环节: 这里我用了静态类,然后在MVC项目StartUp的时候执行Init()方法,其实有点蠢,当然你们也可以先写一个接口然后用依赖注入成单例. using Syst

  • ASP.NET MVC的Localization本地化多语言支持

    一.ASP.NET MVC的本地化支持 ASP.NET MVC的是基于ASP.NET运行,所以由ASP.NET提供的所有功能,都可以在MVC里使用,例如缓存,会话状态和本地化. 在传统的ASP.NET Web窗体时代我们使用资源文件存储不同语言中的内容和使用由Visual Studio自动生成的ResourceManager类来检索它们.在ASP.NET MVC他们一样有效的. 让我创建一个标准的ASP.NET MVC的一个示例应用程序.该网站是中文的,我们可以看到所有的内容都是在视图和控制器类

  • asp.net 2.0多语言网站解决方法

    首先在App_GlobalResources新建resx资源文件.如: 不同语言的resx中项目应该具有相同的名称: 中文资源项 英文资源项 完了以后就可以使用这些名值对了, 复制代码 代码如下: <asp:Literal ID="Literal1" runat="server" Text="<%$ Resources:lang,userinfo%>" /> 或者 复制代码 代码如下: <%=Resources.la

  • asp.net web页面元素的多语言化(多国语化)实现分享

    开发的一些系统,经常要求支持多语言(例如日文,英文等),以前大部分做法是创建一个资源文件, 将每一个标签,按钮等标题文字预先用各种语言设定保存好, 在程序中根据选择的语言来显示对应文字. 这样做的缺点是如果每次改动或增加一个控件,都需要程序开发人员刻意做多语言对应, 如果用户想要改某些标题的描述,还需要开发人员改动资源文件并替换到程序发布目录. 经过调查实验,最终想了一个办法来较好地对应此问题: 在每一个web页面,设定一个只有最高级的管理权限才能看到的一个按钮(例如叫"设定"), 来

  • selenium高效应对Web页面元素刷新的实例讲解

    当我们在页面上进行selenium.type()或者selenium.click()操作的时候,往往需要需要等待一个元素的出现,对于一般的网页,当我们进入一个新页面的时候,往往会使用selenium.waitForPageToLoad(WAITTIME); 对弹出窗口中的元素,往往写死要等待多少秒,其实可以使用如下更加通用高效的方法,自己写一个waitForElement()的方法: Java代码 protected void waitForElement(String target) { fo

  • ASP中Web页面间的数据传递方式

    摘要:基于web的动态网页设计必会涉及到页面间的数据传递,文章探讨了asp设计中常用的web页面间的数据传递方式,分析各种数据传递方式的使用方法.使用场合及优缺点,其都是设计阶段选择数据传递方式考虑的关键. 关键词 数据传递变量浏览器端网页 往往使用动态网页技术制作asp应用程序时一般至少拥有二个或二个以上的web页面,这时就得考虑在多个web页面间传递数据的处理工作.而asp应用程序的各个页面类似于windows应用程序的form窗体,windows应用程序各form间数据传递可以通过定义全局

  • asp.net web页面自定义分页控件使用详解

    这几天学习了一下自定义分页控件,现将实现方法记录下来,亲测可以实现: 1.首先创建一个.ascx文件,命名为TurnPage,然后在里面写控件前台展示的界面: 2.然后在TurnPage.ascx.cs里面写相应的后台代码,代码如下: namespace Web { public delegate void GoToPage(int PageNum); public partial class TurnPage : System.Web.UI.UserControl { private GoTo

  • JavaScript将Web页面内容导出到Word及Excel的方法

    本文实例讲述了JavaScript将Web页面内容导出到Word及Excel的方法.分享给大家供大家参考.具体实现方法如下: <HTML> <HEAD> <title>WEB页面导出为EXCEL文档的方法 </title> </HEAD> <body> <BR> <table id = "PrintA" width="100%" border="1" cel

  • js 实现获取name 相同的页面元素并循环遍历的方法

    实例如下: <input type="hidden" name="blues" value="蓝色浏阳河之最"> <input type="hidden" name="blues" value="蓝色浏阳河之亲"> <input type="hidden" name="blues" value="蓝色浏阳河之

  • jQuery简单实现页面元素置顶时悬浮效果示例

    本文实例讲述了jQuery简单实现页面元素置顶时悬浮效果的方法.分享给大家供大家参考,具体如下: 一.JS Code: <script type="text/javascript"> $.fn.smartFloat = function () { var position = function (element) { var top = element.position().top, pos = element.css("position"); $(wi

  • WEB页面多语言支持解决方案

    首先建立语言档,在项目中加入.resx文件例如:message.zh-cn.resx '简体中文message.zh-tw.resx '繁体中文message.en '英文..............=========================================然后利用Name --Value 键值对 填入你要在页面上显示的语言如:name value message.zh-cn.resx中:res_loginbname 登陆名 :message.zh-tw.resx中:re

  • 如何使用ASP.NET创建网站并设计web页面

    创建网站 1.从网上下载VS2017,我接触的朋友和公司大多数都是使用VS2017/VS2019,我查过,差别不大,不影响学习,但不建议项目中突然改变版本,升级或降级,都有一定的报错什么的,所以还是老老实实选好了就不要随意升级/降级,毕竟运行了这么久,框架也成型了,不好改变 2.打开VS2017,在文件菜单中,选择新建->项目->Web-APS.NNT Web,名称和位置可以自己定义,另外我选的是.NET Framework 4框架,因为这个版本的使用率比较普及的 直接确定后,生成完成后,会看

  • asp.net截屏功能实现截取web页面

    本文实例展示了asp.net截屏功能实现截取web页面的方法,代码简洁易懂,分享给大家供大家参考. 具体实现代码如下: using System.Drawing; //打开该页面 System.Diagnostics.Process.Start("IEXPLORE.EXE", "http://localhost:56/Spacxxe.html"); System.Threading.Thread.Sleep(3000); //截屏 //创建并设置画布大小 Syste

随机推荐