问题现已解决......
我有一个简单的网络表单,我需要在Modal窗口中保存电子邮件地址并相应地给用户成功或失败消息,我想从后面的代码进行验证和处理,然后显示模态窗口。
现在,当我点击订阅按钮时,它会快速显示模态窗口而不执行代码隐藏/服务器端代码。请在下面找到示例代码
<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无法为空或者空,即使删除TargetControlID也会生成错误。
如果我使用隐藏字段作为TargetControl id,那么它执行codebehin但是它会完整回发并且不会显示模态窗口
请建议我如何处理此功能..
我做了什么?我通过将TargeControl指定为隐藏字段来解决了这个问题,而我也使用了response.redirect,我错误地将其取消了注释。现在工作正常
答案 0 :(得分:0)
问题已解决
我做了什么?我通过将TargeControl指定为隐藏字段来解决了这个问题,而我也使用了response.redirect,我错误地将其取消了注释。现在工作正常
答案 1 :(得分:0)