【发布时间】:2012-04-18 22:11:04
【问题描述】:
我们知道 CustomValidator 控件通常会根据一些算术验证检查用户的输入。
我的网络表单中有一个文本框。它的文本不是来自用户的输入,而是来自数据库。
MembershipUser user = Membership.Providers["SqlMembershipProvider"].GetUser(userName);
TextUserName.Text = AntiXss.HtmlEncode(user.UserName);
我的目标是使用某种验证器来检查它是否合适。如果不是,则在文本框中更改它并再次验证。 怎么做?
谢谢。
更新代码:
protected void ValidateUser()
{
string UserNameCreated = TextUserName.Text;
Match match = Regex.Match(UserNameCreated, @"^[a-zA-Z0-9]{6,}$",
RegexOptions.IgnoreCase);
}
<td class="style4">
<asp:TextBox ID="TextUserName" runat="server"></asp:TextBox>
</td><td><asp:CustomValidator ID="CustomValidatorUser" runat="server" ControlToValidate="TextUserName"
ErrorMessage="Minimum of 6 (six) alphanumeric characters."
OnServerValidate="ValidateUser" Display="Dynamic"
ValidateEmptyText="True" ></asp:CustomValidator></td>
【问题讨论】:
-
验证器的目的只是验证用户输入。您可能想要使用某种正则表达式。您应该验证输入之前将其存储在数据库中。
-
你可以用这个模式来做。但是我的情况需要我在显示文本后检查它。
-
您尚未显示您的 CustomValidator。你实际上有什么问题,问题是什么?如果您将
TextUserName.Text设置为当前用户的UserName并且他能够更改它,那么提供一个验证该输入的验证器有什么问题? -
程序永远不会到达验证文本框的代码。代码已更新。
标签: asp.net validation