日期:2014-05-18  浏览次数:20410 次

用过Ajax的请指点一下.
准备做一个多级(9级)数据筛选功能.使用下拉框,选择当前框的数据,以当前数据为条件(dropdownlist)   加载下一级数据.准备用Ajax来实现(无刷新),以前没有用过,这几天试一下,发现几个问题,请各位指教.非常感谢.
首先选择的是AjaxPro:改变dropdownlist的item触发客户端事件=> 调用服务器方法获取数据,在客户端加载,但当提交时,服务器端找不到在客户端加载给dropdownlist的数据,想到一办法:用hinden变量来回传送,但感觉很不方便.
后来选择了asp.net.ajax使用它的updatepanle.但将9个dropdownlist每次都提交服务器,效率就不是太高了.
是否是我使用不当,或有什么更好的方法?希望用的高手给介绍一下.不胜感激.

------解决方案--------------------
“效率就不是太高了”
————————————————————————————————————————
给出你的效率下降具体数据证据。
------解决方案--------------------
自己封装XMLHttpRequest实现比较快就是代码麻烦些...
------解决方案--------------------
如果服务器连这种访问都不能承受,干脆换掉了。
------解决方案--------------------
放到不同的updatepanel没有问题。

不论你的数据绑定控件放在updatepanel内还是之外,其实它都会提交,并且都会被重新绑定(除非数据绑定控件是在一个片断缓存的用户控件中),只是如果不在可刷新的updatepanel之内它就不会更新到客户端。

所以绑定速度不会有感觉,如果有感觉,那么应该是下载速度。然后下载更新几个DropdownList就能赶到慢,那么你的感觉是比较敏感的。我其实希望知道你所说的慢是什么数量及的,你的DropdownList里边的数据是不是非常巨大。

DropdownList中通常应该最多只有二、三十条数据,如果很多很多,用户用起来很麻烦。当每一个DropDownList里边只有几十条数据的时候,9个这样的DropdownList都下载也并不大。
------解决方案--------------------
UpdatePanel也不是唯一的选择,你还可以使用 asp.net ajax tolkit 中的控件。例如:

http://www.a0923.com/AutoComplete/AutoComplete.aspx
http://ajax.asp.net/ajaxtoolkit/AutoComplete/AutoComplete.aspx
------解决方案--------------------
magic ajax
傻瓜式的ajax
------解决方案--------------------
xuexi