Зачем DropDownList переключаться с испанского на английский, когда кто-то выбирает новый элемент в нем?И как можно предотвратить это?
<asp:DropDownList ID="ddl_r1pc" runat="server" AutoPostBack="True"
OnSelectedIndexChanged="ddlRelationship_SelectedIndexChanged">
<asp:ListItem></asp:ListItem>
<asp:ListItem Value="Spouse" Text="<%$Resources:messages, RelSpouse %>"></asp:ListItem>
<asp:ListItem Value="Parent(s)" Text="<%$Resources:messages, RelParents %>"></asp:ListItem>
<asp:ListItem Value="Other" Text="<%$Resources:messages, Other %>"></asp:ListItem>
</asp:DropDownList>
Тогда в Page_Load()
это всегда выполняется (т. Е. Как IsPostBack
и !IsPostBack
):
try {
culture = (string) Session["culture"];
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
}
catch {
Server.Transfer("~/sessiontimeout.aspx");
}
Когда вы впервые заходите на эту страницу после выбора испанского языка в качестве языка, раскрывающийся список заполняется текстами ListItems, которые отображаются, как и ожидалось, на испанском языке.Но когда вы выбираете другой элемент из раскрывающегося списка, все элементы возвращаются на английском языке!
Когда вы просматриваете раскрывающийся список перед AutoPostBack (как на стороне сервера, так и в FireBug), каждый ListItem устанавливается правильно,как в
Value="Some English" Text="Some Español"
, тогда как после PostBack выглядит так:
Value="Some English" Text="The same English"
Почему это происходит, и что я могу сделать, чтобы сохранитьПо-испански кто-нибудь видит перед любыми PostBacks?
Примечания :
- Подпрограмма, указанная в
OnSelectedIndexChanged
, в настоящее время закомментирована, поэтому проблема не в этом. - Я добавил
EnableViewState="true"
в DropDownList, но это не имело никакого значения, поэтому я удалил его. - Как предложил Ichiban ниже, я перенес установку
Thread.CurrentThread.CurrentUICulture
из *От 1034 * до Page_Init()
, но это тоже не имело никакого значения.