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

siv*_*mar 2 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" />
Run Code Online (Sandbox Code Playgroud)

请执行下列操作

  1. 单击Button1

  2. 将显示RequiredFieldValidator

  3. 在TextBox中键入一些文本

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

再次单击"提交表单"按钮.

这似乎是微软设置属性Display ="Dynmaic"时的一个错误,是否有一个简单的解决方法而不改变预期的行为

这有空吗?我无法在任何地方找到解决方案.

Tim*_*ter 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" />
Run Code Online (Sandbox Code Playgroud)

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