2011-11-02 43 views
0

因此,我有一個控件userlogin.ascx,當用戶在未登錄時嘗試訪問某些頁面時,我想彈出一個模式效果。我會去談這個嗎?謝謝。頁面加載時模式彈出式菜單中的ASP.NET用戶控件

+2

我會去讀關於Ajax控件工具包網站上的例子(http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite /ModalPopup/ModalPopup.aspx),例如 – Icarus

+0

這比打開一個模式窗口更困難,因爲.NET會默認嘗試將您重定向到web.config中設置的登錄頁面。 – Zachary

回答

0

我想如果你使用jQuery對話框插件,你可以加載一個URL到對話框中。 所以,做一個普通的.aspx頁面中,您的.ascx加載到,並彈出網址進入模式:

$("#divid").load('http://your.aspx').dialog({modal:true}); 

請注意,你需要有ID爲「DIVID」的一個div(或其他)上這個工作的呼叫頁面。更多這裏:http://docs.jquery.com/UI/Dialog#options

此外,你可以把它放在一個.js的JavaScript函數中 - 在你想要彈出的頁面中,1)確保你有你的div,2)在頁面加載,請檢查Request.IsAuthenticated,並且它沒有使用Page.ScriptManager來調用您的.js函數。

如果你希望保持整潔,推出該功能集成到一個小.acsx控制,然後你只需丟棄在要被強制登錄的人的頁面。

最後,記住該JavaScript可以關閉,所以你可能想考慮整體方法的安全性......如果你想堅持這一點,當用戶第一次訪問你的網站時,可以做一些JavaScript檢測,使用例如jquery以異步方式調用.asmx或類似的,並設置例如Session [「userHasJavascript」]爲true,但這並不能保證它們以後不會禁用它。 短暫的,你通常更好的重定向到登錄頁面...