从Master Page中的DropDown设置当前文化

时间:2010-07-22 13:32:12

标签: asp.net

从MasterPage中的DrownDownList设置CurrentThread.CurrentUICulture的最佳做法是什么?

我不想在每个页面中覆盖InitializeCulture()。 它可以存储在Session变量中并在HttpModule或HttpHandler中设置吗?

我遇到的另一个问题是,如果页面上存在数据绑定语言相关控件,则在语言更改后需要对其进行数据绑定。

感谢。

2 个答案:

答案 0 :(得分:2)

我经常选择创建一个pase页面类并覆盖那里的InitializeCulture()。所有页面都从基页继承,因此所有逻辑都封装在基页中。这对我有用,因为我使用查询字符串来传递语言首选项更改。

InitializeCulture()具有检查查询字符串参数,现有会话值,cookie首选项,默认为浏览器当前文化的逻辑。

我想您可以在母版页下拉列表更改事件中进行重定向。

答案 1 :(得分:1)

我将文化存储在cookie中,然后在global.asax的Application_BeginRequest中设置它。当您第一次设置它时,您必须使用Server.Transfer(Request.Url.LocalPath),因为selectedindex更改事件在生命周期中触发太晚才能生效。不确定它是否最好,但对我有用。