国家 省 市 区 四级联动的DropDownList
使用JS和ajax完成的现在的问题是不管点击别的服务器按钮只要刷新了页面DropDownList里面显示的都是空值怎么解决啊各位高手帮忙啊...
使用JS和ajax完成的 现在的问题是不管点击别的服务器按钮 只要刷新了页面 DropDownList里面显示的都是空值 怎么解决啊 各位高手帮忙啊
展开
展开全部
如果采用服务器端技术实现联动,则每次的selectedindexchange事件发生都是要提交的(即页面要刷新的),之所以采用ajax技术实现DropDownList的联动,目的就是为了不刷新页面的情况下,实现联动。你如果点了某一个按钮,使页面刷新了,那么你的这个四级联动的DropDownList肯定是会重新被置成初始状态,也就是被清空。
如果你现在是用ajax在做一个用户注册页面,那么你的页面中不能用服务器端的控件像<asp:button ...>,这种控件在浏览器端通通都是submit类型,将会导致页面的提交(刷新),这样你的DropDownList的ajax技术就没有意义了,所以你应该使用html的imput控件,这样就不会刷新页面了,在注册页面上将所有信息输入完毕后一起一次性的提交给服务器,这才是ajax的优势所在。
如果你的注册分了很多步,每一步要保存一下信息,你可以采用javascript + css实现对各个步的隐藏,达到下一步,下一步的分步效果(实际上本质,这每一步其实都是在一个页上)。
规根到底,刷新导致DropDownList清空是正常的(也是必须的),我觉得你的问题就是ajax技术和服务器端控件集合使用了,这是不行的。这二者不能共存的。通常服务器端控件需要放在<form runat="server">的服务器端表单内的(这种表单随便点一个钮都是submit),这种做法将极大的消耗服务器端资源,如果大型网站1000个人一起访问,这种办法将导致服务器崩溃,采用ajax技术实现所有的信息处理一次性的提交给服务器,会减少服务器端压力,是一种比较好的做法。ajax使用的控件都是普通的html控件,放在普通的form表单中,runat="server"是不行的。
如果你现在是用ajax在做一个用户注册页面,那么你的页面中不能用服务器端的控件像<asp:button ...>,这种控件在浏览器端通通都是submit类型,将会导致页面的提交(刷新),这样你的DropDownList的ajax技术就没有意义了,所以你应该使用html的imput控件,这样就不会刷新页面了,在注册页面上将所有信息输入完毕后一起一次性的提交给服务器,这才是ajax的优势所在。
如果你的注册分了很多步,每一步要保存一下信息,你可以采用javascript + css实现对各个步的隐藏,达到下一步,下一步的分步效果(实际上本质,这每一步其实都是在一个页上)。
规根到底,刷新导致DropDownList清空是正常的(也是必须的),我觉得你的问题就是ajax技术和服务器端控件集合使用了,这是不行的。这二者不能共存的。通常服务器端控件需要放在<form runat="server">的服务器端表单内的(这种表单随便点一个钮都是submit),这种做法将极大的消耗服务器端资源,如果大型网站1000个人一起访问,这种办法将导致服务器崩溃,采用ajax技术实现所有的信息处理一次性的提交给服务器,会减少服务器端压力,是一种比较好的做法。ajax使用的控件都是普通的html控件,放在普通的form表单中,runat="server"是不行的。
光华
2025-01-03 广告
2025-01-03 广告
光华知识产权集团21年专研专利商标版权,专业的国际专利商标代理人,及时响应,实时跟进300+PCT国际年申请量,2006+国外专利年代理量,TRO申诉应诉,专业化解TRO,快速解冻资金...
点击进入详情页
本回答由光华提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询