ページに2つのTextBoxと2つのボタンがあります。
一方が非表示になり、もう一方が表示されます。
Button1
をクリックすると、2つのTextBox
のデータが保存され、RequiredFieldValidator
によって各TextBoxが検証されます。
次に、[Button2
]をクリックすると、自動的に非表示になり(Button2
)、非表示のTextBox
が表示されます。
両方のTextBox
には、Button1
のイベントクリックに対して検証するRequiredFieldValidator
があります。
現在、私の問題は、1番目のTextBoxにテキストを入力して[保存]をクリックするだけです。ボタンをクリックすると、非表示フィールドの必須フィールドが検証されます。 2つのテキストボックスが表示されているときに検証するだけです。
どうすればこれを回避できますか?
さて、あなたは単純に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
}
使用 ValidationGroup="group"
プロパティをbutton
に追加し、検証グループを検証するテキストに割り当てます。それが役立つことを願っています
セカンダリボタンにCausesValidation="false"
を指定できます。これは、検証グループがA)単一のフィールドに対して過剰であり、B)さらにコントロールを追加するときに検証グループを維持する必要がある場合(冗長性が低く、混乱を招く可能性があります)ボタン、バリデーター、フィールドand検証サマリー?標準を覚えていることはあまりありませんが、編集する場合は実用的ではありません。
これはAspxです:
<td align="right">
Cut Type :
</td>
<td class="required">
<telerik:RadComboBox ID="cmbCutType" runat="server" MaxHeight="200px" Width="200px"
Filter="Contains" EnableLoadOnDemand="true" EmptyMessage="Select Cut Type" OnSelectedIndexChanged="cmbCutType_SelectedIndexChanged"
AutoPostBack="true">
</telerik:RadComboBox>
<asp:RequiredFieldValidator runat="server" ID="rfvCutType" Display="None" ControlToValidate="cmbCutType" InitialValue=""
ValidationGroup="Save" ErrorMessage="Cut Type is Mandatory"
ForeColor="Red"></asp:RequiredFieldValidator>
<ajaxToolkit:ValidatorCalloutExtender ID="vceCutType" TargetControlID="rfvCutType"
runat="server">
</ajaxToolkit:ValidatorCalloutExtender>
</td>
これはコードビハインドです。
protected void btn2_Click(object sender, EventArgs e)
{
rfvCutType.IsValid = false;
}
これを試して.......