程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net web頁面元素的多語言化(多國語化)實現分享

asp.net web頁面元素的多語言化(多國語化)實現分享

編輯:ASP.NET基礎

開發的一些系統,經常要求支持多語言(例如日文,英文等),以前大部分做法是創建一個資源文件,

將每一個標簽,按鈕等標題文字預先用各種語言設定保存好,

在程序中根據選擇的語言來顯示對應文字。

這樣做的缺點是如果每次改動或增加一個控件,都需要程序開發人員刻意做多語言對應,

如果用戶想要改某些標題的描述,還需要開發人員改動資源文件並替換到程序發布目錄。

經過調查實驗,最終想了一個辦法來較好地對應此問題:

在每一個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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved