我有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
有效)有效时才有效。
我该如何解决这个问题?
答案 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查看示例