Показать ModalPopupExtender1 из кода позади после сохранения данных с помощью веб-формы asp.net

Проблема решена ...

У меня есть простая веб-форма, в которой мне нужно сохранить адрес электронной почты и дать пользователю сообщение об успехе или неудаче в модальном окне, и я хочу выполнить проверку и обработать из кода, а затем показать модальное окно.

Прямо сейчас, когда я нажимаю кнопку подписки, оно быстро показывает модальное окно без выполнения кода программной части / серверной части. Пожалуйста, найдите образец кода ниже

    <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();
}

Я попытался удалить свойство TargetControlID = "btnSubscribe" из modalPopupExtender, но он выдает ошибку, говоря, что TargetControlID не может быть нулевым или пустым, даже при удалении TargetControlID возникает ошибка.

Если я использую скрытое поле в качестве идентификатора TargetControl, тогда он выполняет код, но он полностью отправляет сообщение и не отображает модальное окно

Подскажите, пожалуйста, как передать эту функциональность.

Что я сделал? Я решил проблему, указав TargeControl как скрытое поле, и я также использовал response.redirect, который по ошибке я оставил без комментариев. Теперь он отлично работает


person Learning    schedule 07.03.2012    source источник


Ответы (2)


ПРОБЛЕМА РЕШЕНА

Что я сделал? Я решил проблему, указав TargeControl как скрытое поле, и я также использовал response.redirect, который по ошибке я оставил без комментариев. Теперь он отлично работает

person Learning    schedule 07.03.2012

Рад, что ты решил свою проблему. Пожалуйста, обрати внимание

  1. Кажется, это большая работа для простого отображения модального сообщения. Вы можете попробовать и взглянуть на [JQModal], это довольно просто для ваших требований 1
  2. Ваш текущий код подвержен атаке с использованием SQL-инъекции. По возможности используйте параметризованные запросы, чтобы быть в безопасности. Параметризованные запросы
person Zo Has    schedule 07.03.2012