は、このコードDeveloping an ASP.NET page with MasterPage and Localizationを見てみましょう。あなたの必要性に合わせてください。あなたがそれをカスタマイズできなかったら。私はあなたを助けようとします。
更新:[OK]を、私たちはこれを試してみましょう: プロジェクトに新しいクラスを追加します。そしてこの
Imports Microsoft.VisualBasic
Imports System.Globalization
Imports System.Threading
Public Class BasePage
Inherits System.Web.UI.Page
Protected Overrides Sub InitializeCulture()
'MyBase.InitializeCulture()
If Session("culture") Is Nothing Then
Session("culture") = "en-US" 'Set default language
End If
Dim cult As String = Session("culture")
Culture = cult
UICulture = cult
MyBase.InitializeCulture()
End Sub
End Class
との内容を上書きするには、今あなたが持っているすべてのページの分離コードに移動し、継承を変更します句:あなたはマスターページ
における言語インターフェースを実装する必要があり、この時点の後
Partial Class _Default
Inherits BasePage
<asp:DropDownList ID="ddlCulture" DataTextField="Name" DataValueField="Name"
runat="server" >
<asp:ListItem Value="es-MX">Spanish</asp:ListItem>
<asp:ListItem Value="en-US">English</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="btnSelect" Text="Select" runat="server" OnClick="btnSelect_Click" />
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
マスターページの分離コードファイル内のイベントが残って:
Protected Sub btnSelect_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnSelect.Click
Session("culture") = ddlCulture.SelectedValue
Response.Redirect(Request.Path)
End Sub
は今、あなたのウェブサイトは、私だけがあなたの好みに使用されるコントロールをカスタマイズする準備ができています。残りのもので
たちは、ユーザーの選択を保存するためにセッションを使用したセッションの有効期限が切れたとき、あなたが永続的なクッキーとセッションを交換することができるので、しかし、ユーザーがデフォルトの言語で提供されていることです。最初にこのアイデアを働かせて、私はクッキーへの変更が問題にならないことを願っています。私はただあなたがこのコンセプトを念頭に置いておきたかっただけです
ありがとうNuux。私はそれでほとんど終わりました。しかし、私は理解できません - この記事では、彼らがベースページによって何を意味していますか?私は私のソリューション全体で "find"を行いました。私はベースページをどこにも持っていません。 –
あなたのプロジェクトに新しいクラスを追加してBasePageという名前をつけ、すべてのページはこのクラスから継承する必要があります – Mubarek
Yep - 私はそのNuuxをやっただけです。私はBaseBage.vbを入れ、それを私のapp_codeフォルダに入れます。エラー 'RequestLanguageChange_Click'は 'ASP.homepage_master'のメンバーではありません。 –