Asp.net 使用RequiredFieldValidators、ValidatorCallout和验证的ModalPopupXtender按正确顺序显示即可

Asp.net 使用RequiredFieldValidators、ValidatorCallout和验证的ModalPopupXtender按正确顺序显示即可,asp.net,requiredfieldvalidator,Asp.net,Requiredfieldvalidator,我正试图让一系列的事情按正确的顺序发生,但是运气不好。我所拥有的是一些带有asp:ReuiredFieldValidators和asp:ValidatorCallout的字段,用于显示验证消息。这是通过按钮Save with validation=“true”触发的 如果全部验证,它将显示一个模式对话框,询问如何保存数据的两个选项。无论答案如何,在此阶段应始终继续执行代码隐藏保存功能。AjaxToolkit_ModalPopupXtender连接到同一个保存按钮 发生的情况是,验证标注和模态对话

我正试图让一系列的事情按正确的顺序发生,但是运气不好。我所拥有的是一些带有asp:ReuiredFieldValidators和asp:ValidatorCallout的字段,用于显示验证消息。这是通过按钮Save with validation=“true”触发的

如果全部验证,它将显示一个模式对话框,询问如何保存数据的两个选项。无论答案如何,在此阶段应始终继续执行代码隐藏保存功能。AjaxToolkit_ModalPopupXtender连接到同一个保存按钮

发生的情况是,验证标注和模态对话框同时显示

搜索提示和帮助,但没有找到任何,对我来说,有帮助!非常感谢您的帮助

干杯
/Johan

如果页面有效,您可以从codebehind(在
BtnSave中)显示
modalpoup
。单击
-handler):

Page.Validate("YourValidationGroup");
If(Page.IsValid){ 
    ModalPopup1.Show();
}
因此,您需要将
ModalPopupExtender
TargetControlID
设置为隐藏按钮:

<asp:Button ID="Hid_ShowDialog" Style="display: none" runat="server" />

只有在客户端验证页面时,才能移动到代码隐藏。您可以使用按钮的
OnClientClick

    <asp:Button ID="ShowDialog" onClientClick = "return ValidatePage();" 
     runat="server" />


    <script type="text/javascript">

    function ValidatePage() {

        if (typeof (Page_ClientValidate) == 'function') {
            Page_ClientValidate();
        }

        if (Page_IsValid) {
            // do something
            alert('Page is valid!');                
            return true;
        }
        else {
            // do something else
            alert('Page is not valid!');
            return false;
        }
    }

</script>

函数ValidatePage(){
if(typeof(Page_ClientValidate)==“函数”){
Page_ClientValidate();
}
如果(第页有效){
//做点什么
警报('页面有效!');
返回true;
}
否则{
//做点别的
警报('页面无效!');
返回false;
}
}

谢谢!工作起来很有魅力!做所有的服务器端操作,而不是混合一些客户端和服务器端。