1

古いサイトコア ASP ネット アプリケーションを入手しました。そして、レイアウト(aspx)で、サイトの言語を変更する必要があるImageButtonコントロールがあることがわかりました。

    protected void btnLanguage_Click(object sender, EventArgs e)
    {
        ImageButton flag = (ImageButton)sender;
        if (string.IsNullOrEmpty("") == false)
        {
           UserContext.CurrentCulture = LanguageManager.GetLanguage(flag.CommandArgument);                     
        }
        else
        {
            SC.Context.Language = LanguageManager.GetLanguage(flag.CommandArgument);
        }
    }

しかし、このイベントが呼び出された後に変換する必要があるコントロールがたくさんあります。ASPネットページのライフスタイルプロセスでは、それは良い動作ではありませんが、とにかく私はそれで何かをする必要があります. 私の場合、それを行う最善の方法は何ですか?また、どのように正しい方法で行うべきですか?

4

2 に答える 2

2

Alistair Deneys は、イベントを使用してコンポーネントが相互に通信できるようにする方法を文書化しました。このメカニズムを知っておくことは価値があります。Alistair の投稿Decoupling Through the Sitecore Event Pool をご覧ください。

于 2013-02-17T10:30:04.113 に答える
1

これが Sitecore アプリケーションの場合は、Sitecore に処理させ、画像ボタンをハイパーリンク付きの通常の画像に変更し、言語パラメーターを渡します (LinkManager を使用):

/en-CA/some-folder/some-page.aspx

/some-folder/some-page.aspx?sc_lang=en-CA

次に、に基づいてシステムカルチャを設定できますSitecore.Context.Lanaguge

この投稿の有用な情報については、コメントも参照してください。

于 2013-02-15T14:54:21.577 に答える