我正在我的酒店管理系统门户网站上应用全球化,我遇到了一个问题。我的问题是我有一个英语和西班牙语两种语言的下拉列表,我设置autopostback =“true”所以从下拉列表我选择西班牙语,我的网页通过调用以下方法成功地将英语语言转换为西班牙语
protected override void InitializeCulture()
{
if (Request.Form["ctl00$contentplaceholder1$language_drp"] != null)
{
UICulture = Request.Form["ctl00$contentplaceholder1$language_drp"];
}
base.InitializeCulture();
}
因为我已将autopostback属性设置为true,所以此函数被称为successl。 我还编辑控制,我可以用西班牙语或英语编辑我的酒店详细信息,我使用了tab容器来获取酒店的所有信息。 但是当我点击编辑时,我的页面不会回复为真,这就是为什么我无法调用iniliaze文化方法,这就是为什么我的页面语言不可转换。 我在tabcontainer中应用了autopostback属性,但是失败了。 在标签容器中我有标签面板。 这是我的代码
<asp:TabContainer ID="TabContainerHotelDetails" runat="server" AutoPostBack="true"
Width="100%" OnLoad="TabContainerHotelDetails_Load">
<asp:TabPanel runat="server" HeaderText="General" ID="TabGeneral" >
<ContentTemplate>
<asp:Panel ID="PanelInfo" runat="server" Width="100%" GroupingText="<%$ Resources:Resource, LocalizedInformation %>">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="20%">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="metaHotelName" runat="server" Text="<%$ Resources:Resource, LocalizedHotelName %>"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="metaHotelStatus" runat="server" Text="<%$ Resources:Resource, LocalizedStatus %>"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="metaMemberShip" runat="server" Text="<%$ Resources:Resource, LocalizedMemberShipType %>"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="metaUserName" runat="server" Text="<%$ Resources:Resource, LocalizedUserName %>"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="metaEmail" runat="server" Text="<%$ Resources:Resource, LocalizedEmail %>"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="metaTotalPoint" runat="server" Text="<%$ Resources:Resource, LocalizedTotalPoint %>"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="metaRegistrationDate" runat="server" Text="<%$ Resources:Resource, LocalizedRegisteredDate %>"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="metaLastLogin" runat="server" Text="<%$ Resources:Resource, LocalizedLastLogin %>"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="metaEmailActivated" runat="server" Text="<%$ Resources:Resource, LocalizedEmailActivated %>"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="metaLockedOut" runat="server" Text="<%$ Resources:Resource, LocalizedLockedOut %>"></asp:Label>
</td>
</tr>
</table>
</td>
<td width="5%" style="border-right: 1px dotted black;">
</td>
<td>
<table border="0" cellpadding="0" cellspacing="0" style="padding-left: 10px;">
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="lblHotelName" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="lblStatus" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="lblMembershipType" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="lblUserName" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="lblEmail" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="lblTotalPoints" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="lblRegisteredDate" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:Label ID="lblLastLogin" runat="server"></asp:Label>
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:CheckBox ID="chkEmailActivated" runat="server" OnCheckedChanged="chkEmailActivated_CheckedChanged"
AutoPostBack="True" />
</td>
</tr>
<tr>
<td style="padding-top: 10px; height: 30px;">
<asp:CheckBox ID="chkLockedOut" runat="server" OnCheckedChanged="chkLockedOut_CheckedChanged"
AutoPostBack="True" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</asp:Panel>
我有什么方法可以轻松地做到这一点或替代方案,所以我的iniliazeculture方法在点击编辑后被调用。 请帮忙,因为我是一个非常新的堆栈溢出。我实际上并不知道发布问题的好方法。
答案 0 :(得分:0)
您可以使用Web方法初始化文化。为此,您必须首先创建javascript方法,当您单击编辑选项卡时将调用该方法,并且可以从该脚本调用页面级Web方法来初始化文化。希望这对你有帮助。
答案 1 :(得分:0)
我在搜索两天后找到答案。 答案很简单:)
我将我的语言值设置为UICulture
protected override void InitializeCulture()
{
if (Request.Form["ctl00$contentplaceholder1$language_drp"] != null)
{
UICulture = Request.Form["ctl00$contentplaceholder1$language_drp"];
}
if (Request.QueryString["HotelID"] != null)
{
this.UICulture = "es";
}
base.InitializeCulture();
}
及其正常工作:)