验证不适用于ImageButton单击

时间:2011-03-17 06:03:46

标签: c# validation

我有一个用于登录系统的图像按钮。最常见的是我有两个文本框txt_usernametxt_password。 我已经为两个文本框添加了必需的字段验证器。并设置验证组“a”和相应的控件以验证它们。我的ImageButton的源代码如下: -

<td align="right" class="simple_text">&nbsp;</td>
<td align="left">
     <asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="true"
          ImageUrl="~/images/signin_button.gif" onclick="ImageButton1_Click" 
          ValidationGroup="a" />
 </td>

现在我厌倦了当我运行我的应用程序并单击ImageButton它根本没有响应验证并重定向到下一页。任何人都可以说为什么会这样?这是第一次验证器不起作用。

这是源代码: -

<td align="left"><table width="480" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="178" align="right" class="simple_text">User Name :&nbsp;</td>
            <td width="302" align="left">

                &nbsp;<asp:TextBox ID="txt_username" runat="server" 
                    CssClass="text_box_username" Width="180px" AutoPostBack="True" 
                    ontextchanged="txt_username_TextChanged" ValidationGroup="a" 
                    CausesValidation="True"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                    ControlToValidate="txt_username" ErrorMessage="RequiredFieldValidator" 
                    ValidationGroup="a">**</asp:RequiredFieldValidator>
          </td>
          </tr>
          <tr>
            <td align="right" class="simple_text">&nbsp;</td>
            <td align="left">&nbsp;</td>
          </tr>
          <tr>
            <td align="right" class="simple_text">Password :&nbsp;</td>
            <td align="left">
                <asp:TextBox ID="txt_password" runat="server" CssClass="text_box_password" 
                    TextMode="Password" Width="180px" ValidationGroup="a" 
                    CausesValidation="True"></asp:TextBox>
                                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                    ControlToValidate="txt_password" ErrorMessage="RequiredFieldValidator" 
                    ValidationGroup="a">**</asp:RequiredFieldValidator>
                                        </td>
          </tr>
          <tr>
            <td align="right" class="simple_text">&nbsp;</td>
            <td align="left">&nbsp;</td>
          </tr>
          <tr>
            <td align="right" class="simple_text">&nbsp;</td>
            <td align="left">
                <asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="true"
                    ImageUrl="~/images/signin_button.gif" onclick="ImageButton1_Click" 
                    ValidationGroup="a" />
              </td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td align="left">&nbsp;</td>
      </tr>
      <tr>

3 个答案:

答案 0 :(得分:2)

嗨,只需粘贴此代码就可以正常使用

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <td align="left"><table width="480" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="178" align="right" class="simple_text">User Name :&nbsp;</td>
            <td width="302" align="left">

                &nbsp;<asp:TextBox ID="txt_username" runat="server" 
                     Width="180px" AutoPostBack="True" 
                     ValidationGroup="a" 
                    CausesValidation="True" ontextchanged="txt_username_TextChanged"></asp:TextBox>
                <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                    ControlToValidate="txt_username" ErrorMessage="RequiredFieldValidator" 
                    ValidationGroup="a">**</asp:RequiredFieldValidator>
          </td>
          </tr>
          <tr>
            <td align="right" class="simple_text">&nbsp;</td>
            <td align="left">&nbsp;</td>
          </tr>
          <tr>
            <td align="right" class="simple_text">Password :&nbsp;</td>
            <td align="left">
                <asp:TextBox ID="txt_password" runat="server" 
                    TextMode="Password" Width="180px" ValidationGroup="a" 
                    CausesValidation="True"></asp:TextBox>
                                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                    ControlToValidate="txt_password" ErrorMessage="RequiredFieldValidator" 
                    ValidationGroup="a">**</asp:RequiredFieldValidator>
                                        </td>
          </tr>
          <tr>
            <td align="right" class="simple_text">&nbsp;</td>
            <td align="left">&nbsp;</td>
          </tr>
          <tr>
            <td align="right" class="simple_text">&nbsp;</td>
            <td align="left">
                <asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="true"
                    ImageUrl="~/images/signin_button.gif" onclick="ImageButton1_Click" 
                    ValidationGroup="a" />
              </td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td align="left">&nbsp;</td>
      </tr>
      <tr>

    </div>
    </form>
</body>
</html>

答案 1 :(得分:1)

希望您正确提供了validationGroup属性。

Specifying Validation Groups

答案 2 :(得分:0)

这个怎么样:

<asp:ImageButton runat="server" CausesValidation="true" ImageUrl="..." />

CausesValidation =“true”可能会强制验证运行。