前段时间看extjsasp控件,它有一个语言设置,就想着如何在程序中实现。研究了一下。有以下一些经验
1、开发一个PageBase类
public class PageBase:Page
{
}
把 InitializeCulture方法给override掉。
在该方法实现如下:
base.InitializeCulture(); if (Session["language"] != null) { Page.Culture = Session["language"].ToString(); Page.UICulture = Session["language"].ToString(); }
2、创建一个页面,并继承PageBase
在该页面上添加一个DropDownList控件,并设置选项
<asp:DropDownList ID="ddlLanguages" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddlLanguages_SelectedIndexChanged"> <asp:ListItem Value="Auto" Text="请选择语言"></asp:ListItem> <asp:ListItem Value="en-us" Text="英语"></asp:ListItem> <asp:ListItem Value="zh-cn" Text="简体中文"></asp:ListItem> </asp:DropDownList>
注意:要设置AutoPostBack为true
3、编写事件代码
Session["language"] = ddlLanguages.SelectedValue; //重定向,因为,InitializeCulture方法比DropDownList的事件先完成,也就是如果不重定向,所选语言显示的是上一次Session中的值。 Response.Redirect(Request.Url.AbsolutePath);4、编写该页面的Page_Load事件
if(!IsPostBack)
{
if (Session["language"] != null) {
//有个redirect,设置一下所选项。 ddlLanguages.SelectedValue= Session["language"].ToString(); }
}
转载于:https://www.cnblogs.com/deepwishly/archive/2010/04/13/2551259.html
相关资源:JAVA上百实例源码以及开源项目