我正在使用一个用户控件(用于电话号码),并且在其中有一些验证。该用户控件在系统中的多个位置被使用,我需要从使用它的地方传递ValidationGroup,但是这样并没有起作用(验证未触发),用户可以提交表单而不输入电话号码。
注意:提交按钮已经有相同的验证组。
以下是用户控件的代码
<div runat="server" ID="DivContainer" class="control-group">
<label class="control-label">Phone Number<span class="required">*</span></label>
<div class="row-fluid">
<div class="span6">
<asp:DropDownList runat="server" ID="DdlCountryPhoneCodes" CssClass="span12" />
</div>
<div class="span6">
<input type="text" maxlength="50" cssclass="span12" runat="server" id="TxtPhoneNumber" />
</div>
</div>
<div class="validation-message-wrapper">
<asp:RequiredFieldValidator runat="server" CssClass="validation-message" ErrorMessage="Enter your phone number." ValidationGroup="<%= ValidationGroup %>" Display="Dynamic" ControlToValidate="TxtPhoneNumber" />
<asp:CustomValidator runat="server" ID="CustomValidatorTxtPhoneNumber" ControlToValidate="TxtPhoneNumber" Display="Dynamic" CssClass="validation-message" ValidationGroup="<%= ValidationGroup %>" ClientValidationFunction="validatePhoneNumber" />
</div>
以下是用户控件的使用示例
<uc1:RecoveryPhoneNumber runat="server" ID="ucRecoveryPhoneNumber" ValidationGroup="ManageAccountGroup" />
问:如何使验证功能在使用用户控件的任何地方生效?
ValidationGroup
,您在放置用户控件的页面上设置它。在用户控件内部,您有验证控件,例如 RequiredField 和 CustomValidator。在用户控件的 Page_Load 事件中,您可以将每个验证控件的 ValidationGroup 属性设置为用户控件的 ValidationGroup 属性,例如CustomValidatorTxtPhoneNumber.ValidationGroup = this.ValidationGroup
。 - Mohsin Mehmood