我建立了一个Textbox控件Textbox1,将一个RequiredFieldValidator控件的ControlToValidator属性指向Textbox1,然后建立一个button1按钮,它的click方法如下: protected void Button1_Click(object sender, EventArgs e) 

if (Page.IsValid == true) 

Response.Write(string.Format("<script>alert('验证通过!');</script>")); } 
else 

Response.Write( string.Format("<script>alert('请在本文框中输入信息');</script>")); 

} 这样一个简单的验证,居然也出了问题,当我不在Textbox1中输入数据而直接点击button1的时候(此时IsValid 应该是false),怎么不弹出‘请在本文框中输入信息'的对话框呢?

解决方案 »

  1.   

    你把RequiredFieldValidator的ErrorMessage属性设置为:请在本文框中输入信息,button_click中写不写都无所谓了。将button的causeValidate属性设置为True.再不行,你就设置断点,看看能不能到那儿。
      

  2.   


    <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
    <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1" ControlToValidate="txtName" Display="None" ErrorMessage="<span style=font-size:12px><b>没有找到必填字段</b><br>姓名是必要的。</span>" />直接在前台打就可以了
      

  3.   

    我认为原因是EnableClientScript被设置成了true,这是默认值。
    这样,点击submit类似的按钮后,javascript在客户端进行验证,失败后,不会调用服务器端的事件,因此进不了你的Button1_Click你可以把EnableClientScript设置成false。但是我也不认为这是个好主意,弹出提示的时候,后面的页面是空白的。
    估计只有自己写javascript去检查空间好点了。
      

  4.   

    你把RequiredFieldValidator的ErrorMessage属性设置为:请在本文框中输入信息protected void Button1_Click(object sender, EventArgs e) 
    这个事件根本不会触发.
      

  5.   

    我是提问的楼主,有的朋友说:Button1_Click不会被触发!,可是为什么当我在TextBox1中 输入数据,点击了
    Button1后,Response.Write(string.Format(" <script>alert('验证通过!'); </script>")); 这条语句能执行呢??我真是不能理解,if (Page.IsValid == true)中的语句能执行,但是else中的语句不能!why??if (Page.IsValid == true) 

    Response.Write(string.Format(" <script>alert('验证通过!'); </script>")); } 
    else 

    Response.Write( string.Format(" <script>alert('请在本文框中输入信息'); </script>")); 


      

  6.   

    Button1_Click不会被触发!,当在TextBox1中 输入数据之后就不一样了,它通过了页面才能转到后台代码中去。 
      

  7.   

    意思就是如果如果没通过页面验证,不会去执行load().....