看到别人的网站的主题都是在后台进行切换,我自已做了一下,只能在本页面切换。
page.Theme="RedTheme"
有什么方法能通过后台操作而进行前台的主题节换吗?
page.Theme="RedTheme"
有什么方法能通过后台操作而进行前台的主题节换吗?
解决方案 »
- asp.net视频播放flv格式的flash视频
- 知道团购网的请进来
- 这个正则怎么写?
- ASP.NET 用radiobuttonlist选择性别问题
- 高分:类型“DataGridLinkButton”的控件“dgShow__ctl2__ctl0”必须放在具有 runat=server 的窗体标记内
- 在asp.net中有没有办法将该xml文档的数据紧凑起来?
- 一个关于xml文件操作的问题![两天内结贴]
- 急求新闻发布系统数据绑定解疑~~!!
- 老大们!!!帮帮忙!我用datagrid自带的分页功能,为什么不可以?执行时居然时空白页,什么都没有!!!
- 在asp.net中怎么判断这个用户已经登陆了?
- 问一个linq编程时遇到的问题
- 关于服务器包含shtm的include导入文件不全
{
border:solid 1px red;
}2.建一个基类GRbase,将其设置由public class GRbase:System.Web.UI.Page 派生。代码如下:public class GRbase:System.Web.UI.Page
{
public GRbase()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
protected override void OnPreInit(EventArgs e)//在页面初始化之前进行调用
{
HttpCookie hc = Request.Cookies["Sessiontheme"];//接收cookies传值;
if (hc != null)
{
try
{
Page.Theme = Server.HtmlEncode(hc.Value.ToString());//有值是使用传过来的值;
}
catch
{
Page.Theme = "Default";
}
}
else
{
Page.Theme = "Default";//否则默认值为default;
}
base.OnPreInit(e);
} public static System.Collections.ArrayList Themeal;//设置静态的动态数组; public static void Init()
{
Themeal = new System.Collections.ArrayList();
System.IO.DirectoryInfo df = new System.IO.DirectoryInfo(HttpContext.Current.Server.MapPath("App_Themes"));//得到App_Themes下的文件夹;
foreach (System.IO.DirectoryInfo dr in df.GetDirectories())
{
Themeal.Add(dr.Name);//逐个读取文件夹的名称,并将其添加到arraylist中;
}
} 3.添加一个Global.asax文件,对GRbase的Init方法进行调用,代码如下: void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
GRbase.Init();
}意为,在这个网站一开始运行时就调用这个方法。4.代码视图状态下:public partial class Default2 :GRbase//页面须从基类中派生出来,否则基类中的设置在此无效。protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string sql = "select * from stus";
DataTable dt = Class1.Gettb(sql);
this.GridView1.DataSource = dt;//绑定的数据库的值
this.GridView1.DataBind();
dropdl();
}
}
private void dropdl()
{
try
{
this.DropDownList1.DataSource = GRbase.Themeal;//从基类中调用arraylist数组,并绑定到dropdownlist中;
this.DropDownList1.DataBind();
this.DropDownList1.SelectedValue = this.Theme;//设置默认值为当前的主题;
}
catch
{
}
} protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
HttpCookie hc = new HttpCookie("Sessiontheme");//当dropdownlist发生改变时,写一个cookie;
hc.Value = DropDownList1.SelectedValue;//dropdownlist的选中项,赋给cookie;
Response.Cookies.Add(hc);//用response写入;
Response.Redirect("Default2.aspx");//跳转本网页时,会调用GRbase的onpreinit,来获取cookie的值;
}
page.Theme="RedTheme"进行皮肤切换.
当然你可以用ViewStateage保存Page.Theme指向的主题皮肤,这样通过修改ViewState中的值就可修改主题皮肤了