解决方案 »

  1.   

    你用的是服务端组件,它的事件会引起页面重新加载,第二个,pageload中加ispostbact判断,或者用html的下拉实现
      

  2.   


    回发机制不能与轻量级的 Ajax 并用。所以一旦你使用富客户端的编程技术为主,那么什么asp.net“都是浮云”了,你基本上不应该再回发。这个时候不管是asp.net webform还是什么asp.net mvc,都是去了主要作用。Ajax 主要是要访问简单的轻量级网页服务,也就是 ashx 这类东西,才是刚好合适的。
      

  3.   

    如果你需要使用富客户端的 ajax 开发,那么相对来说 asp.net 这种东西的机制就垃圾了。你应该使用 knockout 之类的简单的 UI 框架驱动你的设计,从而你就知道类似你说的这种 UI 程序之类的,只需要使用 ajax 方法简单地访问一下数据查询服务接口即可。不再使用 asp.net 回发了。早在7、8年前,我就对 asp.net 项目组抛弃真正的 ajax 潮流而去抄袭开发 java 中也显得过时而笨拙的 asp.net mvc 觉得可惜。asp.net 应该仍然保证所见即所得地、用鼠标拖拉就能进行丰富布局设计的开发风格,而不是什么 asp.net mvc 那种可笑的低级 UI 开发。只不过它应该让所有的 asp.net 控件的所有复杂行为都运行在客户端,页面不再回发,控件的绑定刷新自动地访问 ashx或者svc之类的数据服务。可惜7、8年过去了,我相信微软已经没有这方面的架构师了,早几年前经被鲍尔默和辛诺夫斯基这两个小心眼的男人给挤出微软了。我们唯一可以做到的就是搞清楚,在我们赶上ajax 编程风格潮流的时候,asp.net 该如何“舍”的问题。
      

  4.   

       <form id="form1" runat="server">  放在这里
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnableCdn="True" EnableHistory="True"
            EnablePageMethods="True" EnableScriptGlobalization="True">
        </asp:ScriptManager>下面的框住你的几个DropDownList,让其局部刷新
                          <asp:UpdatePanel ID="UpdatePanel4" runat="server" style="display: inline;">
                                    <ContentTemplate>
                                     </ContentTemplate>
                                </asp:UpdatePanel>