问题描述
本页面:mytest.aspxprotectedvoidPage_Load(objectsender,EventArgse){if(!this.IsPostBack){if(Request.QueryString["chinesename"]!=null&&Request.QueryString["chinesename"].Length>0){stringname=Request.QueryString["chinesename"].ToString();DropDownList3.SelectedValue=name;TextBox_Chinese.Text=name;}}}protectedvoidDropDownList3_SelectedIndexChanged(objectsender,EventArgse){stringname=DropDownList3.SelectedValuestringurl="mytest.aspx?chinesename="+name+"";Response.Redirect(url);}页面mytest.aspx传到页面mytest.aspx(自己给自己用URL传值)在page_load中改变了DropDownList的值,这样就触发了DropDownList_SelectedIndexChanged的事件,并且再传值回去刷新page_load页面又再次改变了DropDownList这样就成了一个循环,请问哪位大神有好办法解决啊?
解决方案
解决方案二:
DropDownList数据绑定放在非回传的里面if(!Page.IsPostBack){BindDDL();}
解决方案三:
你可否动态绑定事件呢,一开始不绑定的,需要时,比如一个页面加载完毕后在动态+=指定事件
解决方案四:
if(!Page.IsPostBack){}这个很重要的
解决方案五:
if(Request.QueryString["chinesename"]!=null&&Request.QueryString["chinesename"].Length>0){stringname=Request.QueryString["chinesename"].ToString();DropDownList3.SelectedValue=name;TextBox_Chinese.Text=name;}上面这样写试试你无非是想绑定list的值if(Request.QueryString["chinesename"]!=null&&Request.QueryString["chinesename"].Length>0){ListItemlt=DropDownList3.Items.FindByValue(name);if(lt!=null){lt.Selected=true;}}
解决方案六:
老兄,,你代码太有意思了。。stringname=DropDownList3.SelectedValuestringurl="mytest.aspx?chinesename="+name+"";Response.Redirect(url);改变后,还再次刷新页面,,,这种做法。。不可取。服务器控件本身有ViewState状态保存。。。如果你是想做三级无刷新功能,建意你用JQUERYajax实现。。
解决方案七:
dropdown不是有一属性叫autopostback=true么?这样的话你就直接接收就可以了..它自己就刷新了...