イメージボタンの1つをクリックして言語を変更することができます。 私はHiddenfieldを使用して、ユーザーによって選択された言語のコードを保存しました(Imagebuttonクリックイベントで)。 マイInitializeCulture方法は、次のようになります。これは正常に動作しますイメージボタンを使用して多言語ウェブサイトの言語を変更するために2回のポストバックが必要
protected override void InitializeCulture()
{
string culture = "Auto";
string selectedValue = Request.Form["ctl00$HiddenFieldLang"];
switch (selectedValue)
{
case "1": culture = "Auto";
break;
case "2": culture = "zh-HK";
break;
default: break;
}
if (culture != "Auto")
{
System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo(culture);
//ci = System.Globalization.CultureInfo.CreateSpecificCulture(culture);
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
}
base.InitializeCulture();
}
。しかし、ページの言語を変更するには2回のポストバックが必要です。私は1つのポストバック(何も変わらない)で、hiddenfieldの値が設定されていると推測しています。 2回目のポストバックでは、実際の翻訳が行われます。
イメージボタンを1回クリックするだけでページが翻訳されるようにするにはどうすれば実装できますか?
ありがとうございます!
ImageButtonを通常のボタンに変更して、2回のクリックが必要かどうかを確認します。特定のシナリオでImageButtonとポストバックに問題があることを覚えているようです。通常のボタンで問題が解決した場合は、通常のボタンを使用してその背景を画像に設定します。 – TheGeekYouNeed
私が理解しているように、KhushbooはFormコレクションを使用しているので、InitCultureが呼び出されたときにコントロールのコントロールが初期化されないため、どのコントロールが使用されているかは問題になりませんか? –