“博”技术之精,“客”网络之友。

博,客之博;客,博之客。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

使用Cascadingdropdown控件遇到的一个问题

Posted on 2007-12-08 17:47  nect  阅读(765)  评论(3编辑  收藏  举报

昨天项目上需要是用Cascadingdropdown控件来实现3个dropdownlist的联动效果。本以为是个很容易的事情,结果却……
代码加上后,打开页面报15行有Sys.Debug……的错误,很奇怪。
开始以为自己的代码有问题,于是从网上考贝了一份代码过来,不过运行结果一样是Sys.debug错误。郁闷。
于是想到打开SampleWebSite站点看看是如何实现的,结果运行Samplewebsite站点的页面,同样也是报相同的错误。更郁闷了。
没办法,再打开在线的SampleWebSite站点看看,结果是正常的。我晕,我也没改动过AjaxControlToolkit的源代码呀:(

经过一番测时,发现当给第2、3个dropdownlist添加ParentControlID后,就会出现这个问题,不添加ParentControID属性,页面不报错,但是没有“联动”效果。

郁闷了一晚上,今天重新检查原因:其动脚本调试,发现报错代码是:

Sys.Debug.assert(this._parentElement != null, String.format(AjaxControlToolkit.Resources.CascadingDropDown_NoParentElement, this._parentControlID));

(应该是CascadingDropdownBehavior.js文件的110行)。
这句代码似乎是检测当前Dropdownlist的ParentControlID对应的Element是否存在【呵呵,没看全
代码,故且这么认为了,高手指点一下,以免其他小辈跟我一样误解:(】,既然这样的话,不如我去掉这个检查,看看是否可以。

于是在调试教本报错时,跳过110行的代码。虽然连续报了2次这个错误(因为我是3个dropdownlist的联动),不过居然页面效果却达到了:webservice调用成功,3个dropdownlist的内容获取正常,同时也有“联动”的效过。

后记:
1、最后我只能注释掉110行代码重新编译AjaxControToolkit.dll。
1、希望对AjaxControlToolkit比较感兴趣的前辈们在看到这个文章时能给予我一点帮助,虽然目前
可以使用,但是发布时加上的这句代码应改还是有道理的,而且我直接查看在线的SampleWebSit没有报错,“联动”效果也是有的。