如何实现ASP.Net系统的中英文版

来源:互联网 发布:云点播源码 编辑:程序博客网 时间:2024/06/04 20:13
 

如何实现ASP.Net系统的中英文版,在这里只提供一种方法,不过可以肯定的是Vs.net2005提供的皮肤肯定比这个方法先进和方便。

首先设计一个数据表来存储控件的Text值,表结构如下:

Text(程序名,语言,控件ID,控件Text)

P01101,CN,Label1,登录名

P01101,EN,Label1,UserName

实现算法:循环取得Page的控件,逐一付数据库里的Text值。经典提问:如何循环取得Page的控件呢?

    Dim strSqlCon As String = System.Configuration.ConfigurationSettings.AppSettings("strConPage")
    Dim sqlCon As System.Data.SqlClient.SqlConnection
    Dim sqlCom As System.Data.SqlClient.SqlDataAdapter
    Dim strCom As String
    Dim datSet As System.Data.DataSet
    Protected WithEvents RadioButtonList1 As System.Web.UI.WebControls.RadioButtonList
    Protected WithEvents Label3 As System.Web.UI.WebControls.Label
    Dim datRow As DataRow() '声明datarow数组

Private Sub Text_Init(ByVal ProgramID As String, ByVal Language As String)
        sqlCon = New System.Data.SqlClient.SqlConnection(strSqlCon)
        strCom = "Select * from Text Where Pro='" + ProgramID + "' and Lan='" + Language + "'"
        sqlCom = New System.Data.SqlClient.SqlDataAdapter(strCom, sqlCon)
        datSet = New System.Data.DataSet
        sqlCom.Fill(datSet, "Text")
        Dim control As Control
        For Each control In Page.Controls(1).Controls
            Try
                Dim Label_Control As Label = CType(control, Label)
                datRow = datSet.Tables("Text").Select("Con='" + control.ID + "'")
                Label_Control.Text = datRow(0).Item("Txt")
            Catch ex As Exception
            End Try
        Next
        For Each control In Page.Controls(1).Controls
            Try
                Dim Button_Control As Button = CType(control, Button)
                datRow = datSet.Tables("Text").Select("Con='" + control.ID + "'")
                Button_Control.Text = datRow(0).Item("Txt")
            Catch ex As Exception
            End Try
        Next

        sqlCon.Close()
        sqlCon = Nothing
        sqlCom = Nothing
        datSet = Nothing
End Sub