두 개의 유효성 검사 컨트롤이 있는데, 하나로 합칠 수 있습니까? 다음은 원래 두 개의 컨트롤이지만 첫 번째 컨트롤에서만 작동합니다. 나는 하나의 유효성 검사 컨트롤 만 가질 수 있다는 것을 깨달았다.두 개의 유효성 검사 컨트롤을 하나로 결합하십시오.
<asp:TextBox runat="server" ID="UserName" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" ValidationExpression="^[a-zA-Z0-9]{6,}$"
runat="server" ErrorMessage="Error, please reselect it" ControlToValidate="UserName">
</asp:RegularExpressionValidator>
<asp:CustomValidator
ID="CustomValidator1" runat="server"
ErrorMessage="Please select another name." ControlToValidate="UserName" OnServerValidate="ValidateUser"></asp:CustomValidator>
그리고 뒤에 코드의 검증 :
protected void ValidateUser(object source, ServerValidateEventArgs args)
{
// check if the username created exists in AD already.
TextBox UserNameTextBox =
(TextBox)CreateUserWizardStep2.ContentTemplateContainer.FindControl("UserName");
string UserNameCreated = UserNameTextBox.Text;
DirectoryEntry entry = new DirectoryEntry("LDAP://cfs");
entry.AuthenticationType = AuthenticationTypes.Secure;
DirectorySearcher deSearch = new DirectorySearcher(entry);
deSearch.Filter = "(&(objectClass=user)(cn=" + UserNameCreated + "))";
SearchResultCollection results = deSearch.FindAll();
Match match = Regex.Match(args.Value, @"^[a-zA-Z0-9]{6,}$",
RegexOptions.IgnoreCase);
if (results.Count > 0)
args.IsValid = false;
else if (match.Success)
args.IsValid = true;
else
args.IsValid = false;
}
감사합니다. 편집 : 앱이 중단 점을 설정하더라도 여기에 연결할 수 없습니다. 첫 번째 유효성 검사 컨트롤을 제거하고 두 번째 유효성 검사 만 유지합니다.
사랑에는 통제가 없지만 무엇이든 하나를 결합 할 수 있습니다 :-) – zod