0

私はこれを持っています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があるもの) が有効な場合にのみ機能します。

どうすればこれを修正できますか?

4

2 に答える 2

2

Button コントロールがクリックされたときに検証を実行したくないボタンには、CausesValidation="false"を設定します。

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

Button.CausesValidation プロパティ: Button コントロールがクリックされたときに検証を実行するかどうかを示す値を取得または設定します。

于 2013-04-02T07:49:02.223 に答える
0

ボタンやテキストボックスの検証などと同じ ValidationGroup プロパティを設定する必要があります。たとえば、textBox1 の近くにフィールドバリデーターが必要です。そして、あなたは2つのボタンを持っています。ValidationGroup を使用しない場合、入力を検証せずにそれらのいずれかをクリックすることはできません。例を見るにはここを チェックしてください

于 2013-04-02T07:45:56.927 に答える