2つの異なるビューを表す2つのパネルを持つページのRequiredFieldValidatorに問題があります。つまり、1つのパネルのみが一度に表示されますが、同じ送信ボタンを共有します。ASP.NET Validatorが起動しない
デフォルトでは、「BatchReturnPanel」が表示され、「SingleReturnPanel」は非表示になっています。この場合、ページ上のすべてのバリデーターは正常に動作します。しかし、「バッチ..」パネルを非表示にして「シングル..」パネル(ChangeViewButtonクリックイベント)を表示すると、requieredFieldValidator「DropDownListFieldValidator」は起動せず、ページは常に検証されたと見なされます。なぜこれが起こり、どのようにしてこの問題を解決できるのでしょうか?以下は、ヘルプ/
のおかげでは、ASPXページからの抜粋です:
<div>
<asp:DropDownList ID="MDDropDownList" runat="server"></asp:DropDownList>
<asp:RequiredFieldValidator id="DropDownListFieldValidator" runat="server" ControlToValidate="MDDropDownList"
InitialValue="-" ErrorMessage="Please select Master Distributor" EnableClientScript="true" CssClass="error"
Display="Static" ValidationGroup="Voucher" />
<asp:Panel runat="server" ID="BatchReturnPanel">
<p>
<asp:TextBox ID="FirstVoucherTextBox" runat="server" CssClass="Scanner RRS"></asp:TextBox>
<asp:RequiredFieldValidator ID="FirstVoucherFieldValidator" runat="server" ControlToValidate="FirstVoucherTextBox" ValidationGroup="Voucher"
ErrorMessage="Valid Voucher ID for the first voucher in batch is required<br>" Display="Dynamic" CssClass="error" EnableClientScript="false"></asp:RequiredFieldValidator>
</p>
</asp:Panel>
<asp:Panel runat="server" ID="SingleReturnPanel" Visible="false">
<p>
<asp:TextBox ID="SingleVoucherTextBox1" runat="server"></asp:TextBox><br />
<asp:TextBox ID="SingleVoucherTextBox2" runat="server"></asp:TextBox><br />
<asp:TextBox ID="SingleVoucherTextBox3" runat="server"></asp:TextBox><br />
</p>
</asp:Panel>
<asp:Button ID="VoucherSubmitButton" runat="server" Text="Enter"
OnClick="VoucherSubmitButton_Click" UseSubmitBehavior="false" ValidationGroup="Voucher"/>
</div>
<asp:Panel CssClass="grid_4 box" runat="server" ID="ChangeViewPanel">
<asp:LinkButton runat="server" ID="ChangeViewButton"
onclick="ChangeViewButton_Click">Single item return mode</asp:LinkButton>
</asp:Panel>
に役立つ? – Bastardo
あなたは 'ChangeViewButton'をクリックすると、' Voucher' 'とは異なるFirstVoucherFieldValidator'の' ValidationGroup'何かを設定しよう '' UseSubmitBehavior = "false" に'BatchReturnPanel'が表示されている場合は' Boucher'を設定します。 – Bastardo
どのメソッドで 'MDDropDownList'を入力していますか?これも表示できますか? –