简单地说,我想在我的bootstrap模式中为我的按钮触发ASP验证。如果验证触发,我希望它们在没有模态关闭的情况下出现。如果验证没有触发,则模态正常关闭。
我已经为此检查了很多解决方案,但我认为我找不到一个可行的解决方案。我想在bootstrap模式中的一个文本框上使用ASP验证。如果我的按钮上有data-dismiss =“modal”,即使验证触发,模态也会关闭。
在我看来,如果我可以从服务器端关闭模式,那将最有效。但我不确定是否有更好的解决方案。这是我的页脚客户端代码:
<div class="modal-footer">
<asp:Button runat="server" ID="SubmitMessageBtn" Text="Send" class="btn btn-success" OnClick="SubmitMessageBtn_Click" UseSubmitBehavior="false" data-dismiss="modal" />
<a href="#" class="btn" data-dismiss="modal">Close</a>
</div>
这就是我在服务器端尝试的内容:
protected void SubmitMessageBtn_Click(object sender, EventArgs e)
{
//if validation passes
if (Page.IsValid)
{
ClientScript.RegisterStartupScript(GetType(), "Hide", "<script> $('#messageUserModal').modal('hide');</script>");
}
}
答案 0 :(得分:0)
没关系,我在这里发现了这个问题: Open Bootstrap Modal from code-behind
如果它在更新面板中,显然它不起作用
答案 1 :(得分:0)
即使这是一个较老的线程。 RegisterStartUp将在init之前注册脚本。尝试使用
之类的东西ScriptManager.RegisterClientScriptBlock(this.Page, GetType(), "HideLoginDialog", "<script> $('#login-dialog').modal('hide');</script>", false);
标记应该看起来像
<div id="login-dialog" class="modal fade" tabindex="-1">
...
<div class="modal-footer text-center">
<asp:UpdatePanel runat="server" ID="up_login">
<ContentTemplate>
<asp:Button runat="server" ID="login" OnClick="login_Click" type="button" class="btn btn-primary" Text="Login"></asp:Button>
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
...
</div>
后面的代码看起来像
protected void login_Click(object sender, EventArgs e)
{
CloseModalServerEvent();
}
protected void CloseModalServerEvent()
{
ScriptManager.RegisterClientScriptBlock(this.Page, GetType(), "HideLoginDialog", "<script> $('#login-dialog').modal('hide');</script>", false);
}