ASP.NET下使用jQuery UI下的Dialog,伺服器端按鈕無響應的問題。

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.