问题描述
我一个页面里有两个textbox,还有一个dropdownlist,在网站中创建了两个主题分别为Theme1与Theme2,现在通过选择dropdownlist里面的主题一与主题二来动态加载主题。代码如下publicpartialclass_Default:System.Web.UI.Page{protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidDropDownList1_SelectedIndexChanged(objectsender,EventArgse){if(!IsPostBack){stringurl=Request.Path+"?theme"+DropDownList1.SelectedItem.Value;Response.Redirect(url);}}voidPage_PreInit(Objectsender,EventArgse){stringtheme="Theme1";if(Request.QueryString["theme"]==null){theme="Theme2";}else{theme=Request.QueryString["theme"];}Page.Theme=theme;ListItemitem=DropDownList1.Items.FindByValue(theme);if(item!=null){item.Selected=true;}}}我不知道错在哪里了,实现不了切换主题的效果。请大神不吝赐教。
解决方案
解决方案二:
你是要当dropdownList发生改变的时候重新加载页面吗?我不明白为什么要在change事件里用上if(!ispostback)dropdownlist的改变难道不是控件的回传吗,你设断点的话if进得去吗。
解决方案三:
if(!IsPostBack)只有写在page_load里才有意义事件本来只有回传的时候才会执行,新开页面不会执行
解决方案四:
引用2楼Z65443344的回复:
if(!IsPostBack)只有写在page_load里才有意义事件本来只有回传的时候才会执行,新开页面不会执行
我把if(!IsPostBack)去掉之后还是不行,大神能指导下小弟吗
解决方案五:
你自己调试过Request.QueryString["theme"]的值吗?要么是你贴代码时电脑出错了(少了字符),要么就是你根本没有动手去调试跟踪PreInit里边的代码?
解决方案六:
引用4楼sp1234的回复:
你自己调试过Request.QueryString["theme"]的值吗?要么是你贴代码时电脑出错了(少了字符),要么就是你根本没有动手去调试跟踪PreInit里边的代码?
谢谢你,我没有调试,我刚刚学这东西,还不是很熟悉,不知道怎么调试,