2017-12-12 16 views
0

非常にシンプルに見えますが、ますますイライラしています。このケースのボタンがテキストボックスを検証するのはなぜですか?

<asp:Button ID="ButtonClearAll" runat="server" Text="Clear" OnClick="ButtonClearAll_Click"/> 

問題:.aspxファイルに

protected void ButtonClearAll_Click(object sender, EventArgs e) 
{ 
    TextBox1.Text = string.Empty; 
    TextBox2.Text = string.Empty; 
    TextBox3.Text = string.Empty; 
    TextBox4.Text = string.Empty; 
} 

コード:私はTextBoxesに入力されたテキストをクリアButtonClear次のコードを持っているASP.NET Webフォームで働いていますButtonClearAllを一度クリックすると、TextBoxesの4つは正常にクリアされます。しかし、それ以降のクリックで、は、呼び出されて、割り当てられたTextBoxesを検証して、それぞれのTextBoxの横に適切なエラーステートメントを表示します。

どうすればよいですか?

+1

Learn Javascript。バリデーターを忘れてしまいます。マイクロソフトの敗北した道を離れると、人生は厳しいものになります。最初は厳しいものですが、各技術を孤立して知っている方がずっと優れています。その障壁はあなたが何か違うことを望む時にあなたの頭の上でクラッシュする。 –

+1

私は知っています。そして率直であるために、私はその困難な方法を経験しています。 #JavaScriptIsDope –

+0

私たちは皆あります。私は2001年に.NETの場面に到着しました。私はMSのターゲット・オーディエンスであり、ウェブ・プログラミングを知らなかったが、とにかくそれをやっていると思った少年でした。 2004年までに、私はリピータとリテラルを除き、私たちの会社のすべてのサーバー制御を禁止しました。 –

答えて

2

デフォルトでは、任意のポストバックを呼び出すボタンは、まず検証を呼び出します。あなたはthe CausesValidation propertyで特定のボタンの検証を無効にすることができます

<asp:Button ID="ButtonClearAll" CausesValidation="false" ... /> 
0

あなたがに(テキストボックスを検証する必要があります1)をテキストボックスとは異なる検証グループにButtonClearを入れて、ボタンを提出する置くことができますあなたのクリアがテキストボックスを検証しないように同じグループ。

<asp:RequiredFieldValidator ID="RequiredFieldValidator3" ValidationGroup="1" SetFocusOnError="true" Style=" color: red" ControlToValidate="txtEmail" runat="server" ErrorMessage="*"></asp:RequiredFieldValidator> 
<asp:TextBox ID="txtEmail" runat="server" ValidationGroup="1"></asp:TextBox> 
<asp:Button ID="ButtonClearAll" ValidationGroup="2" runat="server" Text="Clear" OnClick="ButtonClearAll_Click"/> 
関連する問題