asp:UpdatePanel仅在其他输入有效时才起作用

时间:2013-04-02 07:39:33

标签: asp.net webforms updatepanel

我有UpdatePanel

  <asp:ScriptManager ID="CheckManager" runat="server" />
  <asp:UpdatePanel ID="checkUsername" runat="server" UpdateMode="Conditional" >
  <ContentTemplate>
  <asp:Label ID="canUse" runat="server" Text=""/>
  <asp:Button ID="check" runat="server" Text="Usable?" onclick="check_Click" />
  <asp:TextBox ID="username" runat="server" ></asp:TextBox>
  </ContentTemplate>
  <Triggers>
  <asp:AsyncPostBackTrigger controlid="check" eventname="Click" />
  </Triggers>
  </asp:UpdatePanel>

更新代码:

 protected void check_Click(object sender, EventArgs e)
    {

        using (HotelEntities h = new HotelEntities())
        {
            UserHandle u = new UserHandle();
            if (u.FindUserByUsername(h, username.Text.ToString()).Any())
            {
                canUse.ForeColor = Color.Magenta;
                canUse.Text = "You cannot use this username";
                username.Text = "";
            }
            else
            {
                canUse.ForeColor = Color.Green;
                canUse.Text = "you can use this username";
            }
        }
    }

但仅当表单中的其他输入(例如RequiredFieldValidator有效)有效时才有效。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

为单击Button控件时不希望进行验证的按钮设置 CausesValidation =“false”

<asp:Button ID="check" CausesValidation="false"  runat="server" 
 Text="Usable?" onclick="check_Click" />

Button.CausesValidation Property:获取或设置一个值,该值指示在单击Button控件时是否执行验证。

答案 1 :(得分:0)

您需要将ValidationGroup属性设置为与按钮和文本框验证等相同。例如,您在textBox1附近需要字段验证程序。你有两个按钮。如果您不使用ValidationGroup,则无法在不验证输入的情况下单击其中任何一个。 你可以 Check here查看示例