【问题标题】:Validation not working for ImageButton click验证不适用于 ImageButton 点击
【发布时间】:2011-03-18 20:04:44
【问题描述】:

我的系统中有一个用于登录的图像按钮。所以最常见的是我有两个文本框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>

【问题讨论】:

  • 验证器是什么样的?

标签: c# validation


【解决方案1】:

您好,只需粘贴此代码肯定会为您工作

<%@ 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>

【讨论】:

    【解决方案2】:

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

    Specifying Validation Groups

    【讨论】:

    • 是的,我已经正确指定了它们。就是这样。当所有属性都正确时有什么问题?
    • 当我编辑我的问题并粘贴我的源代码时,它有时不可见。我应该把我的源代码放在哪里?抱歉,我是这个堆栈溢出的新手。
    • 粘贴源代码后,选择源代码并点击编辑器上的{}(花括号)按钮。它将帮助您粘贴源代码
    • 提供的代码对我来说很好用。为什么你为用户名文本框提供自动回发?
    • 我在 txt_uername.textchanged 事件中比较数据库中的有效用户名。所以它设置为true。
    【解决方案3】:

    这个怎么样:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 2015-01-27
      • 2011-05-18
      • 2011-01-16
      相关资源
      最近更新 更多