我在asp.net中创建了一个自定义文本框控件。我在文本框中为字母,数字和电子邮件地址放置了一些内置验证。现在我希望如果任何这些验证都失败了,应该在文本框下方动态添加标签(错误标签)。在asp.net中在运行时添加标签
可能吗?
感谢
我在asp.net中创建了一个自定义文本框控件。我在文本框中为字母,数字和电子邮件地址放置了一些内置验证。现在我希望如果任何这些验证都失败了,应该在文本框下方动态添加标签(错误标签)。在asp.net中在运行时添加标签
可能吗?
感谢
不要添加标签,但一个CustomValidator(或其他验证之一)。
将其Display
属性设置为动态,如果您希望仅在检测到错误时才显示该属性。
您不需要单独的标签,ASP.NET中的每个Validator
都可以给出适当的ErrorMessage
,它可以出现在文本框旁边。
有从BaseValidator
继承了look at the list of validators,它会给你一切你需要做到这一点
如果你坚持要使用自己的验证,并使用客户端的JavaScript正在做它,然后创建类似于下面的东西......
<asp:Label runat="server" id="lblErrors" style="display:none;">
You have errors!
</asp:Label>
然后在你的验证......
document.getElementById("<%=lblErrors.ClientID%>").style.display =
(anyErrors ? "" : "none");
如果您[R验证全部完成在服务器上,然后有像...
<asp:Label runat="server" id="lblErrors" Visible="false">
You have errors!
</asp:Label>
在验证
则...
lblErrors.Visible = anyErrors
(您也想确保lblErrors.Visible
也设置如果验证没有发生,则为false
)
也可能ValidationSummary控件对您有用。
嗯......谢谢史蒂夫,但我想在这里添加标签,因为我没有使用任何验证控件。其实我试图创建一个自定义的文本框控件,您可以在枚举中指定验证的类型,如果任何验证失败,它将在文本框下面的标签中显示错误。 – 2012-07-26 14:05:36
为什么不创建一个单独的控件,继承'BaseValidator'并专用于您的自定义控件?您将受益于整个验证框架,包括使用ValidationSummary的能力,将错误消息放入页面任何位置的能力,使用Page.Validate,验证组等的可能性。 – 2012-07-26 14:09:01
您是否在说我应该定义一个继承BaseValidator的类,它将拥有所有的验证并在自定义文本框控件中使用它的对象? – 2012-07-26 14:18:13