15

ページに 2 つの TextBox と 2 つの Buttons があります。

1 つは非表示で、もう 1 つは表示されます。

をクリックするButton1と、2 つのデータが保存TextBoxされ、各 TextBox が によって検証されますRequiredFieldValidator

次に、 をクリックButton2すると、それ自体が非表示になり ( Button2)、非表示の が表示されTextBoxます。

どちらもTextBoxのイベント クリックRequiredFieldValidatorに対して検証しています。Button1

今私の問題は、最初の TextBox にテキストを入力して [保存] をクリックすると、ボタンをクリックすると非表示フィールドの必須フィールドが検証されることです。表示されているときに2つのテキストボックスを検証したいだけです。

どうすればこれを回避できますか?

4

5 に答える 5

30

Enabled="false"のプロパティを簡単に使用できますRequiredFieldValidator

質問markupに基づいて、次のようになります。

<asp:TextBox runat="server" ID="tb1"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ID="rfv1" ControlToValidate="tb1" ErrorMessage="*" ValidationGroup="gvSave">
</asp:RequiredFieldValidator>

<asp:TextBox runat="server" ID="tb2" Visible="false"></asp:TextBox>
<asp:RequiredFieldValidator runat="server" ID="rfv2" ControlToValidate="tb2" ErrorMessage="*" Enabled="false" ValidationGroup="gvSave">
</asp:RequiredFieldValidator>

<asp:Button runat="server" ID="btn1" Text="Save" onclick="btn1_Click" ValidationGroup="gvSave"/>
<asp:Button runat="server" ID="btn2" Text="Show" onclick="btn2_Click" />

そして、あなたcodebehindはこのように:

protected void btn2_Click(object sender, EventArgs e)
{
    tb2.Visible = true;
    rfv2.Enabled = true; // Enables the second requiredfieldvalidator
}

protected void btn1_Click(object sender, EventArgs e)
{
  // your Saving code here
}
于 2013-04-05T07:34:54.133 に答える
4

ValidationGroup="group"プロパティを使用して、button検証するテキストに検証グループを割り当てます。それが役立つことを願っています

于 2013-04-05T06:56:01.997 に答える