เป็น Class ที่เอาไว้เปลี่ยนภาษา(Culture) ของหน้า page อะครับ
โดยสืบทอดจาก Class --> System.Web.UIPage
ที่method ---> InitializeCulture()
ในระหว่าง Method InitializeCulture() ผมต้องการอ้างอิง Control เพื่อจะได้เปลี่ยนภาษาตามที่ User กระทำต่อ Control นั้นๆ
แต่ผมไม่เข้าใจการประกาศตัวแปรแบบนี้ครับ
Public Const LanguageDropDownName As String = "ctl00$cphHeader$Header1$ddlLanguage"
ซึ่งเข้าใจว่า...
ddlLanguage ---> เป็น Id ของ DropDownList
Header1 ---> เป็น Id ของ Web User Control ซึ่งมี ddlLanguage อยู่ข้างใน
cphHeader ---> เป็น Id ของ ContentPageHolder ซึ่งมี Header1 อยู่ข้างใน
แต่ ctl00 มันคืออะไรอะครับ?
หรือมีวิธีหา Control แบบอื่นหรือเปล่าครับ?
โค้ดครับ Code (VB.NET)
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Configuration
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports System.Threading
Imports System.Globalization
Public Class BasePage
Inherits Page
Public Const LanguageDropDownName As String = "ctl00$cphHeader$Header1$ddlLanguage"
Public Const PostBackEventTarget As String = "__EVENTTARGET"
Protected Overrides Sub InitializeCulture()
If Request(PostBackEventTarget) IsNot Nothing Then
Dim controlID As String = Request(PostBackEventTarget)
If controlID.Equals(LanguageDropDownName) Then
Dim selectedValue As String = Request.Form(Request(PostBackEventTarget)).ToString()
Select Case selectedValue
Case "0"
SetCulture("hi-IN", "hi-IN")
Exit Select
Case "1"
SetCulture("en-US", "en-US")
Exit Select
Case "2"
SetCulture("en-GB", "en-GB")
Exit Select
Case "3"
SetCulture("fr-FR", "fr-FR")
Exit Select
Case Else
Exit Select
End Select
End If
End If
End Sub
Protected Sub SetCulture(ByVal name As String, ByVal locale As String)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(name)
Thread.CurrentThread.CurrentCulture = New CultureInfo(locale)
Session("MyUICulture") = Thread.CurrentThread.CurrentUICulture
Session("MyCulture") = Thread.CurrentThread.CurrentCulture
End Sub