【问题标题】:Show ModalPopupExtender1 from code behind after saving data using asp.net web form使用 asp.net web 表单保存数据后,从后面的代码中显示 ModalPopupExtender1
【发布时间】:2023-03-16 03:45:01
【问题描述】:

问题现已解决...

我有一个简单的 Web 表单,我需要在其中保存电子邮件地址并在模态窗口中相应地向用户提供成功或失败消息,我想从后面的代码中进行验证和处理,然后显示模态窗口。

现在,当我单击订阅按钮时,它会快速显示模态窗口,而无需执行代码隐藏/服务器端代码。请在下面找到示例代码

    <asp:ModalPopupExtender ID="ModalPopupExtender1" BackgroundCssClass="modalBackground" runat="server" PopupControlID="pnlMSG" CancelControlID="btnSubscribe"
     TargetControlID="HiddenField1">
    </asp:ModalPopupExtender>



继续浏览

                <asp:Label ID="lblSubscriptionText" CssClass="lblfooterSubscribe" 
                    runat="server" Text="Enter your email to subscribe to our Newsletter" 
                    meta:resourcekey="lblSubscriptionTextResource1"></asp:Label>
                <asp:TextBox ID="txtSubscribeEmail" runat="server" CssClass="txtSubEmail" 
                    meta:resourcekey="txtSubscribeEmailResource1"></asp:TextBox>
                <asp:Button ID="btnSubscribe" runat="server" Text="Subscribe" 
                    CssClass="SubEmailBtn" ValidationGroup="SubEmail" 
                    onclick="btnSubscribe_Click" meta:resourcekey="btnSubscribeResource1" />

        <asp:HiddenField ID="HiddenField1" runat="server" />  

protected void btnSubscribe_Click(object sender, EventArgs e)
{
    //Regex reg = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
    string email = txtSubscribeEmail.Text;
    email = Helper.SafeSqlLiteral(email, 2);
    string strSql = "INSERT INTO Subscribe (email, subscribeDate,Language)";
    strSql += "VALUES ('" + email + "','" + DateTime.Now.ToString("yyyy/MM/dd") + "','" + Session["lang"].ToString() + "')";
    int result = 0;
    result = DataProvider.intConnect_Select(strSql);
    lblSubEmailMSG.Visible = true;
    btnSubscribe.Enabled = false;
    //Response.Redirect(HttpContext.Current.Request.Url.AbsoluteUri);
    // System.Threading.Thread.Sleep(2000);
    this.ModalPopupExtender1.Show();
}

我尝试从 modalPopupExtender 中删除 TargetControlID="btnSubscribe" 属性,但它会生成错误,提示 TargetControlID 不能为 null 或为空,即使删除 TargetControlID 也会生成错误。

如果我使用隐藏字段作为 TargetControl id,那么它会执行代码隐藏,但它会执行完整的回发并且不显示模态窗口

请建议我如何处理此功能..

我做了什么?我通过将 TargetControl 指定为 Hidden Field 解决了这个问题,并且我还使用了 response.redirect,我错误地没有注释它。现在可以正常使用了

【问题讨论】:

    标签: c# asp.net ajax modalpopupextender


    【解决方案1】:

    问题已解决

    我做了什么?我通过将 TargetControl 指定为 Hidden Field 解决了这个问题,并且我还使用了 response.redirect,我错误地没有注释它。现在可以正常使用了

    【讨论】:

      【解决方案2】:

      很高兴您的问题得到解决。请注意

      1. 仅仅显示一个模态消息似乎需要做很多工作。您可能想尝试并查看 [JQModal] 这很容易满足您的要求1
      2. 您当前的代码受到 SQL 注入攻击。请尽可能使用参数化查询以确保安全Parametrized queries

      【讨论】:

        猜你喜欢
        • 2013-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-02
        • 1970-01-01
        • 2016-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多