DropDownList가 스페인어에서 새 항목을 선택할 때 영어로 전환하는 이유는 무엇입니까? 그리고 어떻게 그런 일이 일어나지 않도록합니까?DropDownList가 스페인어에서 영어로 전환합니까?
try {
culture = (string) Session["culture"];
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
}
catch {
Server.Transfer("~/sessiontimeout.aspx");
}
먼저 언어로 스페인어를 선택 한 후 해당 페이지로 와서 드롭 다운이 채워집니다 (즉, 모두 IsPostBack
로하고 !IsPostBack
)
<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()
,이 항상 실행 예상대로 ListItems 텍스트가 스페인어로 표시됩니다. 그러나 드롭 다운에서 다른 항목을 선택하면 모든 항목이 영어로 다시 나타납니다! 당신은 (모두 서버 측과 방화범)이 AutoPostBack을하기 전에 드롭 다운을 검토 할 때는
, 각을 ListItem이 제대로
Value="Some English" Text="Some Español"
이 반면 후 다시 게시, 그것은
모양에 같은 설정Value="Some English" Text="The same English"
왜 이런 일이 벌어지고, PostBacks보다 스페인어를 계속 볼 수있게하려면 어떻게해야합니까? 참고
:
루틴은OnSelectedIndexChanged
에에 현재 주석, 그래서 문제가되지 않습니다 지적
- .
- DropDownList에
EnableViewState="true"
을 추가했는데 아무런 차이가 없으므로 삭제했습니다. - 아래와 같이 Ichiban에서 제안한대로
Thread.CurrentThread.CurrentUICulture
을Page_Load
에서Page_Init()
으로 변경했지만 차이점도 없습니다.protected override void InitializeCulture() { try { culture = (string) Session["culture"]; Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture); } catch { Server.Transfer("~/sessiontimeout.aspx"); } base.InitializeCulture(); }
을 한 번 :
감사합니다. 불행히도 Visual Studio는 "재정의"부분 ("재정의 할 적절한 방법이 없습니다")에 대해 불평하고 있으므로 제거했습니다. 또한 OnInit()가 실행되지 않았으므로이를 호출 한 Page_Init()로 변경했습니다. 그러나 문제는 여전히 남아 있으며 DropDownList는 새 항목을 선택할 때 스페인어에서 영어로 바뀝니다. 어떤 아이디어? – Jelks