我有一个带有登录控件的母版页。单击“登录”按钮时,如果用户的成员资格即将在30天内到期,我希望弹出JQuery对话框,否则它将正常登录。我无法弄清楚该怎么做。我会发布部分代码:
这是javascript:
<script type="text/javascript">
function showjQueryDialog() {
$("#dialog").dialog("open");
}
$(document).ready(function() {
$("#dialog").dialog({
autoOpen: false,
modal: true,
buttons: { "Renew Membership": function()
{ $(this).dialog("close"); } }
});
});
</script>
登录按钮名为ibtnLoginButton,这是代码的一部分:
//Grab the user profile.
UserProfiles userProfile =
UserProfiles.GetUserProfiles(txtUserName1.Text);
//Calculate the Time Span
TimeSpan timeSpan = userProfile.Expiration.Subtract(DateTime.Now);
if (timeSpan.Days < 30)
{
//Show JQuery Dialog Here
}
else
{
//Continue with Login Process.
}
答案 0 :(得分:2)
怎么样?
if (timeSpan.Days < 30)
{
//Show JQuery Dialog Here
ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "showExpiration", "showjQueryDialog()", true);
}
答案 1 :(得分:0)
为什么不总是在单击按钮时调用jquery方法,然后在javascript方法中确定是否要显示对话框?如果没有,就不要做任何事情。由于您只是检查ExpirationDate是否小于现在+ 30天,因此您可以在javascript中进行此计算。
编辑:
我无法为您提供确切的解决方案,但是这里有一些伪代码可以帮您解决问题。
首先在javascript中提供用户个人资料的到期日期:
<script>
var userProfileExpiresOn = "<asp:Literal ID="userProfileExpiresOn" />";
</script>
然后编辑您的方法,以便它为您执行当前为服务器端执行的逻辑:
<script>
function showjQueryDialog() {
if (userProfileExpiresOn < (now + 30 days))
$("#dialog").dialog("open");
}
</script>
上找到一些文档
答案 2 :(得分:0)
如果你说你点击一个asp:按钮时出现了这个jQuery对话框,为什么不隐藏按钮并将你的javascript更改为只在页面加载后按下按钮?