问题描述
大家好,我新手,请教大家一个基本问题:<DropDownList1通过ajax联动到<DropDowList2然后在DropDownList2上加个OnSelectedIndexChanged事件后,每次点击DropDownList触发OnSelectedIndexChanged之后<DropList2的ajax绑定值清空了,请加一下怎么解决?谢谢了
解决方案
解决方案二:
参考联动的例子:asp.netmvc:
解决方案三:
你用的是服务端组件,它的事件会引起页面重新加载,第二个,pageload中加ispostbact判断,或者用html的下拉实现
解决方案四:
引用楼主mikelic的回复:
大家好,我新手,请教大家一个基本问题:<DropDownList1通过ajax联动到<DropDowList2然后在DropDownList2上加个OnSelectedIndexChanged事件后,每次点击DropDownList触发OnSelectedIndexChanged之后<DropList2的ajax绑定值清空了,请加一下怎么解决?谢谢了
回发机制不能与轻量级的Ajax并用。所以一旦你使用富客户端的编程技术为主,那么什么asp.net“都是浮云”了,你基本上不应该再回发。这个时候不管是asp.netwebform还是什么asp.netmvc,都是去了主要作用。Ajax主要是要访问简单的轻量级网页服务,也就是ashx这类东西,才是刚好合适的。
解决方案五:
如果你需要使用富客户端的ajax开发,那么相对来说asp.net这种东西的机制就垃圾了。你应该使用knockout之类的简单的UI框架驱动你的设计,从而你就知道类似你说的这种UI程序之类的,只需要使用ajax方法简单地访问一下数据查询服务接口即可。不再使用asp.net回发了。早在7、8年前,我就对asp.net项目组抛弃真正的ajax潮流而去抄袭开发java中也显得过时而笨拙的asp.netmvc觉得可惜。asp.net应该仍然保证所见即所得地、用鼠标拖拉就能进行丰富布局设计的开发风格,而不是什么asp.netmvc那种可笑的低级UI开发。只不过它应该让所有的asp.net控件的所有复杂行为都运行在客户端,页面不再回发,控件的绑定刷新自动地访问ashx或者svc之类的数据服务。可惜7、8年过去了,我相信微软已经没有这方面的架构师了,早几年前经被鲍尔默和辛诺夫斯基这两个小心眼的男人给挤出微软了。我们唯一可以做到的就是搞清楚,在我们赶上ajax编程风格潮流的时候,asp.net该如何“舍”的问题。
解决方案六:
解决方案七:
页面已经不是原来的页面了,是重新从服务器端发送过来的,当然就没有了。
解决方案八:
回传之后重新绑定数据就行了
解决方案九:
<formid="form1"runat="server">放在这里<asp:ScriptManagerID="ScriptManager1"runat="server"EnableCdn="True"EnableHistory="True"EnablePageMethods="True"EnableScriptGlobalization="True"></asp:ScriptManager>下面的框住你的几个DropDownList,让其局部刷新<asp:UpdatePanelID="UpdatePanel4"runat="server"style="display:inline;"><ContentTemplate></ContentTemplate></asp:UpdatePanel>