我在這裏有一個非常奇怪的行爲:我在jQuery UI中創建了一個小彈出對話框,在我的測試HTML頁面中,它完美地工作。當我點擊按鈕時,彈出窗口出現,覆蓋背景,並保持在屏幕上,直到我點擊提供的兩個按鈕之一(確定或取消)。ASP.NET頁面上的jQuery UI對話框(在用戶控件中)
所以現在我想將這添加到我的ASP.NET 3.5應用程序。我想將它添加到用戶控件(ASCX)內的GridView中,該控件位於母版頁中包含的頁面(ASPX)上。 jQuery的1.4.2和jQuery UI 1.8.1腳本母版頁上引用:
<body>
<form id="XXXXXX" runat="server">
<Ajax:ScriptManager ID="masterScriptManager" runat="server" ScriptMode="Auto">
<Scripts>
<asp:ScriptReference Path="~/Scripts/jquery-1.4.2.min.js" />
<asp:ScriptReference Path="~/Scripts/jquery-ui-1.8.1.custom.min.js" />
</Scripts>
</Ajax:ScriptManager>
我不得不改變這種使用Ajax的腳本管理器,因爲它們添加到前所未有的工作。
所以在我的GridView中,我有圖像按鈕欄,當用戶點擊這些,我打電話一點點javascript函數來顯示jQuery用戶界面對話框:
function showDialog()
{
$("#dlg-discount").dialog('open');
$("#txtAmount").focus();
}
當我運行這個MS IE 8中的頁面,我得到一個單獨的頁面,並在頁面頂部,我得到我的內容,具有適當的背景色和所有。在Firefox 3.5.6中,我確實將彈出窗口作爲對話框。
在這兩種情況下,對話框頁面/彈出窗口會在一秒鐘或更短時間內消失 - 無需點擊任何內容!
它看起來類似於this question,但提供的解決方案在我的情況下不起作用。 This one here也似乎相似,但再次:提出的解決方案似乎並沒有在我的情況下工作...
任何想法/提示/提示什麼h ****在這裏?
謝謝!
更新: OK,一個問題就解決了 - 看來,無論出於何種原因,默認MS Ajax的東西是增加某種「觀察者」我的彈出對話框,並關閉它馬上就顯示出來後: - (
所以我改變了對OnClientClick="showDialog();"
和OnClientClick="showDialog(); return false;"
如何不再發生了 - 在彈出對話框,並停留在那裏,直到我點擊任一兩個按鈕(OK
和Cancel
)的
這幾乎是我正在做的。在FF中,對話框出現的很好(現在),但在一秒鐘後就消失了。在IE 8中,我得到一個單獨的頁面 - 真的很奇怪..... – 2010-05-25 11:15:31
您的設置聽起來幾乎與我們的一樣,除了我們使用asp:ScriptManagerProxy加載js文件而不是Ajax文件並調用jQuery.noConflict( )來釋放對$的引用,而不是使用jQuery對象。我們在頁面上也有一些MS Ajax控件,它們應該會載入與您相同的js。也許他們沒有它就有問題?請參閱api.jquery.com/jQuery.noConflict/ – 2010-05-25 13:25:00
感謝您的意見,戴夫!在那些與CSS擺弄,刪除MS Ajax依賴關係以及一些玩耍的遊戲之間,我終於得到了預期的效果。 – 2010-05-26 11:43:50