2011-11-02 45 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,但这并不能保证它们以后不会禁用它。 短暂的,你通常更好的重定向到登录页面...