设置Display =“Dynamic”时出现ASP.NET Validator问题

时间:2010-08-12 14:46:46

标签: asp.net

这是我的ASP.NET代码。简单。它有一个与必填字段验证器和提交按钮相关联的文本框。

 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
        ControlToValidate="TextBox1" Display="Dynamic" 
        ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator>
    <asp:Button ID="Button1" runat="server"  Text="Click Me" />

执行以下操作

  1. 点击Button1

  2. 将显示RequiredFieldValidator

  3. 在TextBox中输入一些文字

  4. 使用鼠标(请勿使用标签)。然后单击按钮,您可以看到您的页面没有“POSTBACK”,只有验证被清除。你需要

  5. 再次单击“提交表单”按钮。

    这似乎是微软设置属性Display =“Dynmaic”时的一个错误,并且是否有一个简单的解决方法而不改变

    的预期行为 这可用吗?我无法在任何地方找到解决方案。

1 个答案:

答案 0 :(得分:6)

您的页面无法提交,因为当您想要单击按钮时,按钮会移动到鼠标下方。这是因为它获得了焦点,Validator-ErrorMessage消失在左侧。 如果您在按钮前插入<br/>,则可以正常工作。

通常我使用*作为Text并使用ValidationSummary来显示ErrorMessage:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
        ControlToValidate="TextBox1" Display="Dynamic" 
        ErrorMessage="This is the Errormessage" Text="*"></asp:RequiredFieldValidator>
<asp:Button ID="Button1" runat="server" Text="Submit" />
<asp:ValidationSummary ID="ValidationSummary1" runat="server" />

或者,如果使用ASP.Net Ajax,您可以使用像ValidatorCalloutExtender这样的漂亮控件。