2011-10-09 24 views
0

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> 
+0

に役立つ? – Bastardo

+0

あなたは 'ChangeViewButton'をクリックすると、' Voucher' 'とは異なるFirstVoucherFieldValidator'の' ValidationGroup'何かを設定しよう '' UseSubmitBehavior = "false" に'BatchReturnPanel'が表示されている場合は' Boucher'を設定します。 – Bastardo

+0

どのメソッドで 'MDDropDownList'を入力していますか?これも表示できますか? –

答えて

0

あなたは検証グループとクライアント側のページの検証を使用することができます。

function Validation() { 
     Page_ClientValidate('validationGroupName'); 

     if (!Page_IsValid) { 
      return false; 
     } 
     else { 
      return true; 
     } 
    } 

希望これは、あなたがこれを持っていない理由

+0

Page.Validate( "Voucher")helped、ありがとう – lekso

関連する問題