asp.net 验证不适用于用户控件内的验证组
asp.net validation not working with validation group inside user control
我正在使用一个用户控件(phone 号),我在里面有一些验证,这个用户控件在系统的多个地方使用,我需要将 ValidationGroup 传递给它来自使用它的地方,但这不起作用(验证未触发)并且用户可以提交表单而无需输入 phone 数字
注意:提交按钮已经有相同的验证组
这里是用户控件的代码
<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 %>
作为 ValidationGroup 名称,而不是变量 ValidationGroup
。这才是正确的做法
ValidationGroup='<%# ValidationGroup %>'
并且需要在UserControl的Page_Load中调用DataBind。
protected void Page_Load(object sender, EventArgs e)
{
DataBind();
}
我正在使用一个用户控件(phone 号),我在里面有一些验证,这个用户控件在系统的多个地方使用,我需要将 ValidationGroup 传递给它来自使用它的地方,但这不起作用(验证未触发)并且用户可以提交表单而无需输入 phone 数字
注意:提交按钮已经有相同的验证组
这里是用户控件的代码
<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 %>
作为 ValidationGroup 名称,而不是变量 ValidationGroup
。这才是正确的做法
ValidationGroup='<%# ValidationGroup %>'
并且需要在UserControl的Page_Load中调用DataBind。
protected void Page_Load(object sender, EventArgs e)
{
DataBind();
}