C# 在模式对话框中显示CustomValidator

C# 在模式对话框中显示CustomValidator,c#,javascript,asp.net,C#,Javascript,Asp.net,我的ValidationSummary显示在模式对话框中。这很好 但是,我的代码隐藏执行一些数据库查找,并将带有CustomValidator的消息添加到我的ValidationSummary中 在我开始在对话框中显示我的ValidationSummary之前,它工作得很好。但是现在,当CustomValidator无效时,它不会显示在ValidationSummary对话框中 当其他字段无效时,会出现该对话框,但不适用于来自代码隐藏的CustomValidator消息 以下是页面无效时显示对话

我的ValidationSummary显示在模式对话框中。这很好

但是,我的代码隐藏执行一些数据库查找,并将带有CustomValidator的消息添加到我的ValidationSummary中

在我开始在对话框中显示我的ValidationSummary之前,它工作得很好。但是现在,当CustomValidator无效时,它不会显示在ValidationSummary对话框中

当其他字段无效时,会出现该对话框,但不适用于来自代码隐藏的CustomValidator消息

以下是页面无效时显示对话框的代码:

<script type="text/javascript">
    function WebForm_OnSubmit() {
        if (typeof (ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) {
            $("#modal_validationSummary").modal('show');
            return false;
        }
        return true;
    }
</script>

谢谢你的帮助

那么事件的顺序是:您发回,添加验证程序,呈现页面,验证摘要不显示错误

在什么时候显示验证摘要?如果是在首次回发之前,则验证消息将不会显示,因为验证会阻止您回发,并且验证直到回发之后才会发生

CustomValidator
没有添加到
Controls
集合中也可能存在问题,但我对此不确定

ETA:一点研究强化了我的信念,即弹出的
ValidationSummary
窗口只适用于客户端验证。你的是服务器端。您可以使
CustomValidator
作为客户端验证器运行,同时仍在服务器上执行工作,但您需要:

  • 定义客户端验证功能
  • 在客户端函数中执行AJAX调用
  • 在标记中声明您的
    CustomValidator
    。(您仍然可以动态添加它,但它将出现在初始渲染中,并且您必须将其添加到
    控件
    集合中。)

  • 无论如何,这是它的浓缩版。

    非常感谢您的帮助。我是新手,所以这些信息非常有用。
    <div class="modal modal-danger" id="modal_validationSummary" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">                
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                    <h4 class="modal-title">Invalid Login</h4>
                </div>
                <div class="modal-body clearfix">
    
                    <asp:ValidationSummary ID="LoginValidationSummary" runat="server" 
                    ValidationGroup="LoginGroup" HeaderText="<div class='validationheader'>Please address the issues below</div>" 
                    CssClass="validationsummary" DisplayMode="BulletList"/>
    
                </div>
                <div class="modal-footer">                    
                    <button type="button" class="btn btn-default btn-clean" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>
    
    CustomValidator cv = new CustomValidator();
    cv.IsValid = false;
    cv.ErrorMessage = "Login not found. Please try again.";
    cv.ValidationGroup = "LoginGroup";
    this.Page.Validators.Add(cv);