我实现了无刷新联动,两个下拉列表,一个工程性质,一个工程类别,根据工程性质读取数据库绑定工程类别,使用xmlhttp技术,功能已实现现在的问题是:在工程填报页面一旦点击其他按钮,如上传附件,保存数据等,net会执行page_load事件,将已经选择的工程类别又重置为初始状态,等于没选择,请问这问题怎么解决?

解决方案 »

  1.   

    这个需要费一番周折了,提供一个解决思路你可以利用viewstate将叶面的这些都保存起来,当回发的时候重新加载
      

  2.   

    那样会把问题弄得越来越复杂,其实我的本意并非是要无刷新,而是要通过一个弹出窗口来浏览计划,在那个页面中通过js来设置父窗口的工程类别和工程性质,而工程性质又放在数据库中,随工程类别变动,所以用xmlhttp能好一点,终于实现了功能,结果还受net的制约现在只有通过js读取父页面地址处理后加上计划id发送给父窗口刷新,由父窗口根据计划id读取数据库,也实现了功能,但是感觉有点别扭,不知道有没有更好的解决办法了
      

  3.   

    如果想实现建议就用VIEWSTATE来存储你下拉列表的数据,然后等你操作完成后在进行填充
      

  4.   

    估计你所需要的使用ajax技术可以实现无刷新更新,你可以去
    csdn的web开发的ajax子板块详细了解一下ajax技术,下面是一个ajax例子http://www.10090.com/demo/hpmenu/ajax.html
      

  5.   

    我也遇到過類似的問題,我認為主要是用JS改變了下拉框,或下列表框的選項,在回傳後,從服務器端無法取到正確的值.估計是VS的機制問題.
    還有Enable = false的控件,不人保存視圖狀態.
      

  6.   

    楼上的,ajax技术不就是XMLHttp的老店新开吗?
    =======================================楼主,关于无刷新下拉菜单,数据重新绑定是个比较麻烦的事情。比较变通的方法是在服务器端写js脚本回传页面,控制下拉菜单默认选项。比较麻烦的地方就是每个服务器端交互的地方都要加上“获取选项”,“回传选项”两个步骤。我个人认为.net搞出所谓的服务端控件有利有弊,常规使用的确很方便(除了Datalsit我认为比较成功),但实现复杂功能就差强人意了,而且服务器段控件占用系统资源也多,生成的代码太多,比如<input type="hidden" name="__VIEWSTATE" value="代码一堆一堆的">。实际开发中,我尽可能避免,几乎很少用服务器端控件,转而大量使用脚本和url传参数方式,form也不用runat=server方式,手工response.form获取数据。然后这个世界清静了........
      

  7.   

    RegisterStartupScript("ddd","<script language=javascript>document.getElementById(\"Select\").options[i].selected == true;\"</script>");柜子里翻出来的,以前写过的。js再根据实际情况再改改。
      

  8.   

    添加一个<input type="hidden" name="hiddenField"> 就可以了