验证摘要无法正确呈现

时间:2011-04-19 14:01:14

标签: asp.net validation web-controls

有没有人见过这个,有没有人知道如何修复它......

验证摘要控件似乎正在渲染:

error message
<br>
error message
<div style="display: none;" id="summaryID">
</div>

如果我在这里错了,请纠正我,但不应该把我的错误放在那个div里面...那么你可以使用CssClass =“what”将cssclass放在控制服务器端的原因吗?

或者我错过了什么?

编辑:

只是为了验证......这是我期望它呈现的:

<div style="display: none;" id="summaryID">
error message
<br>
error message
</div>

编辑2:

产生此标记的服务器端标记是......

<asp:ValidationSummary ID="ui_ValidationSummary" runat="server" />

... 大量的控件,但这里是一个例子(不要过于复杂的事情): ...

<asp:TextBox ID="ui_txtClientDOB" runat="server" />
<asp:RangeValidator ID="ui_RangeValidator_DOB" runat="server" ControlToValidate="ui_txtClientDOB" ErrorMessage="DOB is not valid" MinimumValue="1900/01/01" Type="Date" ForeColor="Red">*</asp:RangeValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="ui_txtClientDOB" ErrorMessage="DOB is missing" ForeColor="Red">*</asp:RequiredFieldValidator>

如果此文本框上的任何验证器都有理由未通过验证,则结果如上所述,是一个空的div标签,旁边有错误。

1 个答案:

答案 0 :(得分:0)

可能div #summaryID是显示客户端验证错误的地方。使用像firebug这样的工具来查看这个,因为你不能在javascript填充标记上做一个视图源。否则,请关闭客户端验证并进行回发。

修改

我的猜测是,您正在混淆与验证控件本身一起显示的错误消息,而不是在验证摘要中。如果您没有向验证控件提供文本属性,它将使用错误消息。尝试以下(删除文本属性,你会明白我的意思):

<asp:ValidationSummary ID="val" runat="server" CssClass="test" 
    DisplayMode="List" />

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
    ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator" Text="*"></asp:RequiredFieldValidator>


<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
    ControlToValidate="TextBox2" ErrorMessage="RequiredFieldValidator" Text="*"></asp:RequiredFieldValidator>

    <asp:Button ID="Button1" runat="server" Text="Button" />