[英]Button Click Event of Web User Control that is placed inside a popup not firing - Asp.net Webforms
我有一个名为Login.ascx的用户控件,具有标记
<div class="row">
<div class="small-12 medium-6 columns">
<p>Login Here</p>
<label>
Email
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
</label>
<label>
Password
<asp:TextBox ID="txtPassword" runat="server"></asp:TextBox>
</label>
<div style="width: 95%; margin: 10px auto">
<asp:Button ID="btnLogin" CssClass="expand button" runat="server" Text="Log in" OnClick="BtnLogin_Click" />
</div>
<p>Not Registered Yet? <a href="../../Register.aspx">Register here »</a></p>
</div>
</div>
用于用户控制的C#代码为
protected void BtnLogin_Click(object sender, EventArgs e)
{
int storeId = 1;
using (var db = new SExpressEntities())
{
string password = PasswordManager.Encrypt(txtPassword.Text);
var user =
db.tbl_Customers.FirstOrDefault(
cust => cust.Email == txtEmail.Text && cust.Pwd == password && cust.StoreId == storeId);
Response.Redirect(HttpContext.Current.Request.RawUrl, true);
}
}
我已将此用户控件放在主页Main.master的div上
<div id="loginModel" class="reveal-modal" data-reveal aria-labelledby="modalTitle" aria-hidden="true" role="dialog">
<uc1:Login runat="server" ID="Login" />
<a class="close-reveal-modal" aria-label="Close">×</a>
</div>
这是一个基础弹出模型,当我单击一个按钮时会打开,但是当我输入用户名和密码而不是单击“登录”按钮时,它不会触发
但是,如果我在独立页面(例如Test.aspx)中拖动相同的用户控件并运行它,则按钮的Click事件会正常工作。
如果这与您在母版页和子页上放置的用户控件Login.ascx相同,即test.aspx。 您的标记说在母版页上将其设为弹出控件。
如果您看到两个用户控件部分都呈现了html,则页面上的用户控件部分将出现在form标记中,但是母版页中的控件部分由于弹出而出现在form标记之外,这就是为什么按钮点击不会触发。
如何解决您的问题,此链接可能会在这方面对asp.net的Foundation Modal问题有所帮助
希望能帮助到你。
只需将以下脚本粘贴到母版页中
<script>
$(document).foundation('reveal', { root_element: 'form' });
</script>
这完美解决了我的问题,因为它创建了表单内部弹出窗口的html,可确保甚至触发点击
您的弹出组件如何工作? 即Bootstrap popover组件使用隐藏的div来显示弹出内容。 因此,当您将窗体放在窗体上时,事件不会绑定到弹出内容,因为内容是从另一个位置替换的。.您试图在弹出组件上找到问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.