当我需要在验证失败时修改HTML时,是否可以使用ASP.NET验证控件?

时间:2011-03-16 19:39:35

标签: asp.net validation-controls

假设我在ASP.NET页面上有一个文本框的HTML:

<div class="myClass">
    <asp:TextBox ID="txtMyTextBox" runat="server"></asp:TextBox>
</div>

这样就可以很容易地向这个页面添加一个必需的字段验证器。

<asp:RequiredFieldValidator ID="valMyTextBox" runat="server" ControlToValidate="txtMyTextBox" ErrorMessage="My Text Box is required."></asp:RequiredFieldValidator>

但如果此文本框验证失败,我需要稍微修改HTML。我需要在DIV中添加一个CSS类。因此,如果用户将此字段留空,我需要HTML如下所示:

<div class="myClass error">
    <asp:TextBox ID="txtMyTextBox" runat="server"></asp:TextBox>
</div>

这可能吗?我无法弄清楚是否有一种方法来编写代码,只有当这个特定的验证器控件未通过验证或其他东西时才触发。我知道我可以编写在整个页面无效时运行的代码。但我只想在此验证器返回无效时运行此代码。希望这是有道理的。

科里

3 个答案:

答案 0 :(得分:0)

好的,我认为这可能会有所帮助,即使我不确定如何做到这一点的确切方法

<div class=<%Response.Write(validateTextBox())%>>

将在服务器上调用的函数,根据文本框改变类的名称

答案 1 :(得分:0)

实际上我在另一个StackOverflow问题中找到了答案。你可以在这里看到它:How do I add an additional CSS class on a surrounding DIV for failed form validation?

答案 2 :(得分:0)

没有Postback的另一种方法是覆盖默认的asp.net验证脚本。我在这里发布了一个示例:https://stackoverflow.com/a/9857696/618044