我有一個網站,其中包含3個選項成語。多語言網站與全球資源
當用戶單擊某個按鈕更改成語時,我需要將所有標題和一些文本更改爲我的GridView。
我在我的cs中做了這個選項,但是這個翻譯只在第二次點擊時才起作用。
什麼可能是錯的?
我製作了五個標籤進行測試,並且所有文本均在第一次點擊翻譯。
我在其他頁面中應用此選項,並且還在第一次單擊時進行了翻譯。
我的.aspx
<body>
<form id="form1" runat="server">
<div>
<div align="center">
<asp:ImageButton ID="pt" ImageUrl="style/PT_48.png" runat="server" OnClick="pt_OnChange" OnClientClick="return pt_OnChange()" />
<asp:ImageButton ID="en" ImageUrl="style/EN_48.png" runat="server" OnClick="en_OnChange" OnClientClick="return en_OnChange()" />
<asp:ImageButton ID="es" ImageUrl="style/ES_48.png" runat="server" OnClick="es_OnChange" OnClientClick="return es_OnChange()" />
</div>
<asp:Label ID="teste" runat="server"></asp:Label>
<asp:Label ID="Label1" runat="server"></asp:Label>
<asp:Label ID="Label2" runat="server"></asp:Label>
<asp:Label ID="Label3" runat="server"></asp:Label>
<asp:Label ID="Label4" runat="server"></asp:Label>
<div id="Div1" runat="server">
<br />
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" GridLines="None"
CssClass="table table-bordered table-striped" HeaderStyle-Font-Size="14px">
<Columns>
<asp:BoundField DataField="idTickets" />
<asp:BoundField DataField="UserName" />
<asp:BoundField DataField="AccessGroup" />
<asp:BoundField DataField="FolderAccess" />
<asp:BoundField DataField="RequestDate" DataFormatString="{0:d}" />
<asp:BoundField DataField="SituationDesc" />
<asp:BoundField DataField="Approver" />
<asp:BoundField DataField="ApprovalDate" DataFormatString="{0:d}" />
<asp:BoundField DataField="BusinessJustification" />
<asp:BoundField DataField="Server" />
<asp:BoundField DataField="UserRequestor" />
</Columns>
</asp:GridView>
</div>
</div>
</form>
我的.cs
protected void Page_Load(object sender, EventArgs e)
{
Idioma.MudaCultura(idiom);
Label1.Text = Idioma.RetornaMensagem("UserRequestor");
Label2.Text = Idioma.RetornaMensagem("BusinessJustification");
Label3.Text = Idioma.RetornaMensagem("welcome");
Label4.Text = Idioma.RetornaMensagem("btnManager");
teste.Text = Idioma.RetornaMensagem("SituationDesc");
GridView1.Columns[0].HeaderText = Idioma.RetornaMensagem("idTickets");
GridView1.Columns[1].HeaderText = Idioma.RetornaMensagem("UserName");
GridView1.Columns[2].HeaderText = Idioma.RetornaMensagem("AccessGroup");
GridView1.Columns[3].HeaderText = Idioma.RetornaMensagem("FolderAccess");
GridView1.Columns[4].HeaderText = Idioma.RetornaMensagem("RequestDate");
GridView1.Columns[5].HeaderText = Idioma.RetornaMensagem("SituationDesc");
GridView1.Columns[6].HeaderText = Idioma.RetornaMensagem("Approver");
GridView1.Columns[7].HeaderText = Idioma.RetornaMensagem("ApprovalDate");
GridView1.Columns[8].HeaderText = Idioma.RetornaMensagem("BusinessJustification");
GridView1.Columns[9].HeaderText = Idioma.RetornaMensagem("Server");
GridView1.Columns[10].HeaderText = Idioma.RetornaMensagem("UserRequestor");
if (!Page.IsPostBack)
{
var listaTickets = new Tickets().ConsultarTickets();
if (listaTickets != null)
{
this.GridView1.DataSource = listaTickets;
if (listaTickets.Count != 0)
{
this.GridView1.DataBind();
GridView1.HeaderRow.TableSection = TableRowSection.TableHeader;
}
}
}
}
protected void pt_OnChange(object sender, EventArgs e)
{
idiom = "pt";
Idioma.MudaCultura(idiom);
GridView1.Columns[0].HeaderText = Idioma.RetornaMensagem("idTickets");
GridView1.Columns[1].HeaderText = Idioma.RetornaMensagem("UserName");
GridView1.Columns[2].HeaderText = Idioma.RetornaMensagem("AccessGroup");
GridView1.Columns[3].HeaderText = Idioma.RetornaMensagem("FolderAccess");
GridView1.Columns[4].HeaderText = Idioma.RetornaMensagem("RequestDate");
GridView1.Columns[5].HeaderText = Idioma.RetornaMensagem("SituationDesc");
GridView1.Columns[6].HeaderText = Idioma.RetornaMensagem("Approver");
GridView1.Columns[7].HeaderText = Idioma.RetornaMensagem("ApprovalDate");
GridView1.Columns[8].HeaderText = Idioma.RetornaMensagem("BusinessJustification");
GridView1.Columns[9].HeaderText = Idioma.RetornaMensagem("Server");
GridView1.Columns[10].HeaderText = Idioma.RetornaMensagem("UserRequestor");
Label1.Text = Idioma.RetornaMensagem("UserRequestor");
Label2.Text = Idioma.RetornaMensagem("BusinessJustification");
Label3.Text = Idioma.RetornaMensagem("welcome");
Label4.Text = Idioma.RetornaMensagem("btnManager");
teste.Text = Idioma.RetornaMensagem("SituationDesc");
}
protected void en_OnChange(object sender, EventArgs e)
{
idiom = "en";
Idioma.MudaCultura(idiom);
GridView1.Columns[0].HeaderText = Idioma.RetornaMensagem("idTickets");
GridView1.Columns[1].HeaderText = Idioma.RetornaMensagem("UserName");
GridView1.Columns[2].HeaderText = Idioma.RetornaMensagem("AccessGroup");
GridView1.Columns[3].HeaderText = Idioma.RetornaMensagem("FolderAccess");
GridView1.Columns[4].HeaderText = Idioma.RetornaMensagem("RequestDate");
GridView1.Columns[5].HeaderText = Idioma.RetornaMensagem("SituationDesc");
GridView1.Columns[6].HeaderText = Idioma.RetornaMensagem("Approver");
GridView1.Columns[7].HeaderText = Idioma.RetornaMensagem("ApprovalDate");
GridView1.Columns[8].HeaderText = Idioma.RetornaMensagem("BusinessJustification");
GridView1.Columns[9].HeaderText = Idioma.RetornaMensagem("Server");
GridView1.Columns[10].HeaderText = Idioma.RetornaMensagem("UserRequestor");
Label1.Text = Idioma.RetornaMensagem("UserRequestor");
Label2.Text = Idioma.RetornaMensagem("BusinessJustification");
Label3.Text = Idioma.RetornaMensagem("welcome");
Label4.Text = Idioma.RetornaMensagem("btnManager");
teste.Text = Idioma.RetornaMensagem("SituationDesc");
}
protected void es_OnChange(object sender, EventArgs e)
{
idiom = "es";
Idioma.MudaCultura(idiom);
GridView1.Columns[0].HeaderText = Idioma.RetornaMensagem("idTickets");
GridView1.Columns[1].HeaderText = Idioma.RetornaMensagem("UserName");
GridView1.Columns[2].HeaderText = Idioma.RetornaMensagem("AccessGroup");
GridView1.Columns[3].HeaderText = Idioma.RetornaMensagem("FolderAccess");
GridView1.Columns[4].HeaderText = Idioma.RetornaMensagem("RequestDate");
GridView1.Columns[5].HeaderText = Idioma.RetornaMensagem("SituationDesc");
GridView1.Columns[6].HeaderText = Idioma.RetornaMensagem("Approver");
GridView1.Columns[7].HeaderText = Idioma.RetornaMensagem("ApprovalDate");
GridView1.Columns[8].HeaderText = Idioma.RetornaMensagem("BusinessJustification");
GridView1.Columns[9].HeaderText = Idioma.RetornaMensagem("Server");
GridView1.Columns[10].HeaderText = Idioma.RetornaMensagem("UserRequestor");
Label1.Text = Idioma.RetornaMensagem("UserRequestor");
Label2.Text = Idioma.RetornaMensagem("BusinessJustification");
Label3.Text = Idioma.RetornaMensagem("welcome");
Label4.Text = Idioma.RetornaMensagem("btnManager");
teste.Text = Idioma.RetornaMensagem("SituationDesc");
}
我與RetornaMensagem和MudaCultura類。
public class語言 {0}私人字符串chaveRM =「」;
public string ChaveRM
{
get { return chaveRM; }
set { chaveRM = value; }
}
public static string RetornaMensagem(string NomeMensagem)
{
ResourceManager resx = new ResourceManager(typeof(RM));
return resx.GetString(NomeMensagem, System.Threading.Thread.CurrentThread.CurrentCulture);
}
public static void MudaCultura(string cultura)
{
if (cultura=="pt")
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("pt", true);
}
else if(cultura=="en")
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en", true);
}
else if (cultura == "es")
{
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("es", true);
}
}
}
Tks!但是,它不起作用!爲了運行良好,我在我的Update in Headers之後調用了所有運行到我的page_load中的行。我在評論中顯示我的解決方案!但是,我必須感謝你,因爲如果你沒有展示你的解決方案,我不能建立我的解決方案。對不起,我的英語... – CaioVJesus89
相反,創建一個包含所有翻譯和綁定代碼的常用方法。此方法將接受「成語」作爲參數。這將有助於正確管理代碼。 – Nps