使用ASP.NET按钮触发JQuery对话框?

时间:2009-03-19 19:43:05

标签: asp.net jquery jquery-ui

我有一个带有控件的页面,带有2个文本框(用户名和密码)和一个asp:Button。如果用户的成员资格将在30天内到期并且单击该按钮,我希望弹出JQuery对话框。在JQuery对话框中,我有一些文本和一个asp:LinkBut​​ton。链接按钮附加了一个事件,但是当我在对话框中单击它时它没有被触发。以下是JQuery的脚本标记:

<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript" src="ui.core.js"></script>
<script type="text/javascript" src="ui.draggable.js"></script>
<script type="text/javascript" src="ui.resizable.js"></script>
<script type="text/javascript" src="ui.dialog.js"></script>

以下是对话框的脚本:为了进行测试,我正在关闭Renew Membership click上的对话框,但我实际上希望它触发我在asp.net中创建的方法,以将用户引导到另一个页面并传递会话变量

<script type="text/javascript">
    $(document).ready(function() {
        $("#dialog").dialog({
         // autoOpen: false,
            modal: true,
            buttons: { "Renew Membership": function() { $(this).dialog("close"); } }
        });
    });
</script>

<asp:Content ID="mainContent" runat="server" ContentPlaceHolderID="Content">
<div id="dialog" title="Membership Renewal">
    <p>Uh Oh! Your membership is going to expire.</p><br />
    <p>Hurry up and renew today!</p><br />
    <asp:LinkButton runat="server" Text="Click Here to Renew" 
        onclick="Unnamed2_Click"></asp:LinkButton>
</div>

以下是LinkBut​​ton的点击事件:

protected void Unnamed2_Click(object sender, EventArgs e)
{
    UserProfiles userProfile = (UserProfiles)Session["userProfile"];
    Response.Redirect("~/Renew.aspx");
}

当用户点击登录按钮时,只有当他们离开的日期是<= 30时才会弹出对话框,如果他们这样做,他们可以选择点击登录按钮在对话框中链接并转到更新页面,我想在其中传递一个带有配置文件的Session变量,但是没有被调用,所以我想,我想知道如何添加按钮的事件处理程序到对话框,有没有办法设置它,以便它只出现一次,例如向用户浏览器添加一个cookie,只有在没有设置cookie的情况下才显示它。

1 个答案:

答案 0 :(得分:1)

我认为这更像是一个ASP.NET问题而不是jQuery对话框问题。

我不会在同一个LinkBut​​ton中使用onClick和PostBackUrl。因此,取消PostBackUrl属性,改为使用

protected void Unnamed2_Click(object sender, EventArgs e){
    UserProfiles userProfile = (UserProfiles)Session["userProfile"];
    Response.Redirect("~/Renew.aspx");
}

如果您只需要在用户&gt;时显示控件30天。我会创建一个用户控件。

<强> jquery.renewDialog.js

$(document).ready(function() {
    $("#dialog").dialog({
        modal: true
    });
});

<强> RenewalUserControl.ascx

<asp:ScriptManager runat="server" id="ScriptManager1">
  <Scripts>
    <asp:ScriptReference Path="jquery.renewDialog.js" />
  </Scripts>
</asp:ScriptManager>
<div id="dialog" title="Membership Renewal">
    <p>Uh Oh! Your membership is going to expire.</p><br />
    <p>Hurry up and renew today!</p><br />
    <asp:LinkButton runat="server" Text="Click Here to Renew" 
        onclick="Unnamed2_Click" />
</div>

<强>的Login.aspx

<uc1:RenewalUserControl runat="server" ID="RenewalUserControl1" Visible="false" />

<强> Login.aspx.cs

if (user.IsExpired)
{
  RenewalUserControl1.Visible = true;
}