我有一个名为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事件工作正常。
答案 0 :(得分:1)
如果这是您放在母版页和子页面上的用户控件Login.ascx,即test.aspx。你的标记说在主页面上你做了一个弹出控件。
如果你看到两个用户控件部分的渲染html,页面上的用户控件部分将出现在表单标签中,但是由于弹出窗口,主页面中的控件部分位于表单标签之外,这就是按钮点击不会触发的原因。
如何解决您的问题,此链接可能在这方面有所帮助 Foundation Modal issue with asp.net
希望它有所帮助。
答案 1 :(得分:1)
只需将以下脚本粘贴到母版页
即可<script>
$(document).foundation('reveal', { root_element: 'form' });
</script>
这完全解决了我的问题,因为它在窗体内部创建了弹出窗口的html,确保点击甚至被解雇
答案 2 :(得分:0)
你的弹出组件如何工作?即Bootstrap popover组件使用隐藏的div来显示弹出内容。因此,当您在其上放置表单时,事件不会绑定到弹出内容,因为内容会从其他位置替换。您尝试在弹出组件上找到问题。