2009-08-03 10 views
0

ページの簡単な説明:ユーザーがアカウントを検索すると(最初のフォームはアカウントを検索します)、アカウント情報が下に表示され、そのアカウントに変更を加えることができます形)。ASP .NETでmutipleフォームを処理する方法

現在のところ、この機能は1つのフォームにしかありませんが、検証しようとすると問題に遭遇しています(2つのボタンのいずれかを押すとすべてのフィールドを検証しようとしますが、編集するために他のフィールドに記入する必要はありません)。また、いずれかのテキストボックスでEnterキーを押すと、検索ボタンがクリックされます。どのようにして特定のボタンにテキストボックスを関連付けることができますか?

+0

ボタンは、検証を行うためにボタンが必要ですが、すべてではなく特定のテキストボックスのみが必要です。 – Alejandro

+0

私は言及すべきでした。 ASP.NET 1.1、つまり、検証グループはありません! – Alejandro

+0

CausesValidationはページのものなので、trueに設定すると、ページに含まれるすべてのバリデータのIsValidステータスがチェックされます。下の私の例では、これを正確にあなたが望むようにする方法を示していますが、多くの自動nicenessが組み込まれています。ダン・アンサーは、あなたが後で作ったものと一直線になるかもしれません。 :) –

答えて

2

検索ボタンでCausesValidation属性を使用するとどうなりますか?

か、この

<asp:TextBox ID="TestBox" runat="server"></asp:TextBox> 
<asp:CustomValidator ErrorMessage="Not" ID="CustomValidator1" Enabled="true"  
    ControlToValidate="TestBox" 
    runat="server"></asp:CustomValidator> 
<asp:Button ID="myButton" CausesValidation="true" OnClick="TestClick" runat="server" /> 

のようなカスタムバリデータを使用することができます次に、あなたのボタンだけに、この

public void TestClick(object sender, EventArgs e) 
{ 
    if(this.TestBox.Text == "me") this.CustomValidator1.IsValid = false; 
    return; 
} 
+0

明らかにこれをfalseに設定すると、問題が分類されるはずです。 –

4

などのonclickのコマンドを持っているあなたがに共通ValidationGroupを追加することができ、特定のフォームフィールドを検証しますそのグループ内で検証する必要があるすべてのバリデータと、それらを送信するボタンもあります。または、のいずれかのボタンのCausesValidationプロパティを設定すると、が押されたときに検証をトリガーします。

default buttonasp:panelに指定することもできます。これは、パネル内でEnterキーを押したときに発生するボタンを制御します。したがって、フォームの周りにパネルをラップし、パネル内のボタンを次のように指定します。

<asp:Panel ID="PanelForm" runat="Server" DefaultButton="ButtonSubmit"> 

    <!-- Form fields go here... --> 

    <asp:Button ID="ButtonSubmit" runat="Server" Text="Submit" /> 

</asp:Panel> 
+0

デフォルトボタン+1を忘れてしまいました。 –

+0

私が使用しているASP.NETのバージョン(1.1)はサポートしていないので、これは使用できません。 – Alejandro

関連する問題