ASP.NET下使用jQuery UI下的Dialog,服务器端按钮无响应的问题。

JQuery下的UI控件似乎是有问题的,某天我从凌晨两点调试一个JQuery Dialog,一直到早上8:00都没有调试出来。当时我在Dialog里面放置了一个服务器按钮,并让按钮和CodeBehind里的一个事件处理函数绑定,但是奇怪的是怎么点击按钮,都不响应后面的事件函数,整得我直抓狂。

天亮后,Google了一下,终于找到原因:JQuery会把Dialog的元素append到Body里面,而不是form里面,狂汗。几百万使用JQuery UI的人被涮了一把,过于信任JQuery UI团队了。

我找到了3种解决方法:

第1种方法:

使用代码:$("#dialog").parent().appendTo("/html/body/form[0]");

 

第2种方法:

加入一个<div id="dialog_target"></div>这样的DIV,然后把Dialog写入这个DIV里面。

$("#dialog").parent().appendTo("#dialog_target");

 

第3种方法:

1、修改Dialog的JS代码,把代码添加到form中,而不是body里面
2、Dialog内部的自定义HTML不使用,而直接加入一个IFRAME,把里面的HTML移到另外的页面中,再与父页面进行交互就OK(我使用的就是这种方法,这样这些独立出来的代码还可以复用

 

我使用的是第2种方法,服务器事件可以响应,效果也不错。

 

http://douyunliang.blog.sohu.com/129047116.html

posted @ 2010-08-18 11:48  貔貅  阅读(710)  评论(0编辑  收藏  举报