在JQUERYUI的Dialog对话框中用Ajax Extensions实际两级分类的DorpDownList无刷新级联

本文介绍了一种解决JQueryUI的Dialog对话框中使用AjaxExtensions实现的两级分类DropDownList无刷新级联失效的问题。通过修改JQueryUI源代码,使Dialog容器保持在form内,确保AjaxExtensions正常工作。

如果你想在JQUERYUI的Dialog对话框中用Ajax Extensions实际两级分类的DorpDownList无刷新级联。

 

你会很郁闷地发现:在Dialog初始化前无刷新级联是没有问题的!而一旦初始化Dialog后就失效。

 

仔细检查,ScriptManager、UpdatePanel、DropDownList的AutoBack这些都没有问题。

 

用httpwatch抓,可以看到Ajax的Get是执行了的,可是DorpDownList的SelectIndexChange事件怎么也不生效!

 

仔细看了前后端代码都没有什么问题,用VS2008调试,发现服务端DorpDownList的SelectIndexChange事件是有执行的!

 

那么只有一种可能了:Ajax Extensions返回的JS代码没有成功执行!可能跟JQueryUi的Dialog有冲突!

 

有了思想后便开始翻看JQueryUi的源代码。

 

ui.dialog.js第48行:.appendTo(document.body)

 

 

 

可以看到初始化的过程中,它将你的dialog容器appendTo到了document.body下,也就是说你的dialog容器将与form表单平级了。

 

在vs2008中使用Ajax Extensions必须将ScriptManager和UpdatePanel置于form之内,而不能与form表单平级。

 

没办法!只能动手改一下JQueryUi了。

 

在前面加个判断吧:

 

 

这样第48行可以改为:.appendTo(obj)

 

在压制过的jquery-ui-1.7.2.custom.min.js找到相同位置,改一下就OK!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值