RequiredFieldValidator来提示ModalPopupExtender。

问题描述 投票:1回答:2

我在一个页面上有一堆 RequiredFieldValidators,我想让 ErrorMessage=""显示在 ModalPopupExtender 中,而不是在页面上。因此,当他们点击提交,一个文本框没有填写,一个ModalPopupExtender会出现在屏幕上,并说 "文本框是必需的",而不是在页面上,其中所需的FieldValidator被放置。

这是我的代码的一个例子(把我的整个页面贴出来就太大了)。

<form id="form1" runat="server">
<div class="container">
<div class="row">
        <div class="span3">
            <div class="control-group">
                <asp:Label ID="NameLbl" class="control-label required" runat="server" Text="Name"></asp:Label>
                <div class="controls">
                    <asp:TextBox ID="NameTxtBox" class="span3" runat="server"></asp:TextBox><span
                        class="help-block"><asp:RequiredFieldValidator ID="NameRFV" class="RFV" runat="server"
                            ErrorMessage="Name is Required" ControlToValidate="NameTxtBox"></asp:RequiredFieldValidator></span>
                </div>
            </div>
        </div>
         <div class="span3">
            <div class="control-group">
                <asp:Label ID="Email" class="control-label required" runat="server" Text="Email"></asp:Label>
                <div class="controls">
                    <asp:TextBox ID="EmailTxtBox" class="span3" runat="server"></asp:TextBox><span
                        class="help-block"><asp:RequiredFieldValidator ID="EmailRFV" class="RFV" runat="server"
                            ErrorMessage="Required" ControlToValidate="EmailTxtBox"></asp:RequiredFieldValidator></span>
                </div>
            </div>
        </div>
      </div>
     <asp:Button ID="Button1" class="btn btn-primary" runat="server" Text="Submit"
                OnClick="Submit_Click" />
     </div>
    </form>

    <asp:scriptmanager id="ScriptManager1" runat="server">
            </asp:scriptmanager><asp:ModalPopupExtender ID="ModalPopupExtender1" cancelcontrolid="btnCancel"
targetcontrolid="Button1" popupcontrolid="SavePopup" 
backgroundcssclass="ModalPopupBG" runat="server">
            </asp:ModalPopupExtender>
            <asp:panel id="SavePopup" style="display: none" runat="server">
            <div class="ModalPopup">
            <h4>Fields Missing!</h4>
                <p>Name is Required, Email is Required.</p>
                <input id="btnCancel" type="button" value="Close" /></div>
         </asp:panel>

这是一个模拟图,我希望当用户点击提交按钮时,他们应该看到一个像这样的modelpopup,说明哪些字段是空的。

enter image description here

有什么办法可以做到这一点吗?我是否要在modalpopupextender中保留requestfieldvalidators,但我如何确定modalpopupextender是否被激活,我不想让它出现在所有字段都有文本的情况下。

c# asp.net modalpopupextender requiredfieldvalidator
2个回答
1
投票

我发现了ValidationSummary工具,并使用这个工具在提交时获得了一个弹出式窗口。

<asp:ValidationSummary ID="ValidationSummary1" HeaderText="You're missing a required field:" EnableClientScript="true" ShowMessageBox="true" ShowSummary="false" runat="server" />

ShowMessageBox="true "是我得到弹出框的原因。


0
投票

你可以用这样的方法。

<script type = "text/javascript"> function isPageValid() {
  var validated = Page_ClientValidate('YourGroupName');
  if (validated) {
    var mdlPopup = $find('myModalPopup');
    if (mdlPopup) {
      mdlPopup.show();
      return false;
    }
  }
} </script>
© www.soinside.com 2019 - 2024. All rights reserved.