如何从主页中的控件调用javascript函数?

我有一个带有登录控件的母版页。 单击“登录”按钮时,如果用户的成员资格即将在30天内到期,我希望弹出JQuery对话框,否则它将正常登录。 我无法弄明白该怎么做。 我会发布部分代码:

这是javascript:

 function showjQueryDialog() { $("#dialog").dialog("open"); } $(document).ready(function() { $("#dialog").dialog({ autoOpen: false, modal: true, buttons: { "Renew Membership": function() { $(this).dialog("close"); } } }); });  

登录按钮名为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. } 

这个怎么样?

 if (timeSpan.Days < 30) { //Show JQuery Dialog Here ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "showExpiration", "showjQueryDialog()", true); } 

如果,正如你所说的那样,当点击一个asp:Button时你就会出现这个jQuery对话框,为什么不隐藏按钮并将你的javascript更改为只需在页面加载后按下按钮?

为什么不总是在单击按钮时调用jquery方法,然后在javascript方法中确定是否要显示对话框? 如果没有,就不要做任何事情。 由于您只是检查ExpirationDate是否小于现在+ 30天,您可以在javascript中完成该计算。

编辑:

我无法为您提供确切的解决方案,但这里有一些伪代码可以让您继续前进。

首先让用户个人资料的到期日期需要在javascript中提供:

  

然后编辑您的方法,以便它为您执行当前为服务器端执行的逻辑:

  

您可以在W3schools找到有关如何使用Javascript中的日期的一些文档。