2012-03-30 18 views
1

ここに質問があります。チェックボックスをオンにしたときに検証を無効にする方法。私はValidatorEnable(コントロール、偽)を試みたが、それは私のために働くことはできません。検証メッセージBy Javascript

<dxe:BaseCheckBox runat ="server" ID="chkIsChecked" ClientInstanceName ="chkIsChecked"> 
     <ClientSideEvents CheckedChanged="OnSelectionChanged"/> 
</dxe:BaseCheckBox> 


<dxe:BaseComboBox runat ="server" ID="cboLabour" ClientInstanceName ="cboLabour" ValueType="System.String" ClientEnabled="false" > 
    <ValidationSettings SetFocusOnError="True" ErrorText="This field is required to fill." 
     ErrorDisplayMode="ImageWithTooltip" ValidationGroup="RejectReason" 
     CausesValidation="false"> 
      <RequiredField IsRequired="True" ErrorText="This field is required to fill."> 
      </RequiredField> 
    </ValidationSettings> 
</dxe:BaseComboBox> 

マイJavascriptを:アドバイスのため

function OnSelectionChanged(s,e) 
{ 
    if(chkIsChecked.GetValue()) 
    { 
     cboLabour.SetEnabled(true); 
    } 
    else 
    {  
     cboLabour.SetEnabled(false); 
     cboLabour.SetValue(''); 
    } 
} 

感謝。

+1

あなたはこれらからであるライブラリを指定する必要があり、組み込みのコントロールを使用していないので。答えはそれに依存します。 –

+0

Devexpress 8.1 uは? –

答えて

0

これを行うには、カスタム検証を行う必要があります。このような何か:

function OnLabouryValidation(s, e) { 
    if (chkIsChecked.GetValue()) 
     return; 

    var v = e.value; 
    if(e.value) 
      return; 

    e.isValid = false; 
    e.errorText = "Required."; 
} 

あり、ここでカスタム検証上の「ドキュメントは」ですが、私の迅速な読書では、これを配線する方法を明示的にクリアではありません。

http://documentation.devexpress.com/#AspNet/CustomDocument11135

+0

ありがとう、それを見て。 –

0

私はあなたがグループの検証を探しているあなたの質問から発見されたよう:

最初のセットValidateOnLeave ValidationSettings中=「False」にし、あなたのコントロールに検証グループ名を指定して使用しますクライアント側ASPxClientEdit.ValidateGroup('MyGroup');メソッドを使用して、必要条件ごとにカスタマイズを行い、コントロールのグループを検証します。

マークアップ:

<dxe:BaseCheckBox runat ="server" ID="chkIsChecked" ClientInstanceName ="chkIsChecked"> 
      <ClientSideEvents CheckedChanged="OnSelectionChanged"/> 
    </dxe:BaseCheckBox> 


    <dxe:BaseComboBox runat ="server" ID="cboLabour" ClientInstanceName ="cboLabour" ValueType="System.String" ClientEnabled="false" > 
     <ValidationSettings SetFocusOnError="True" ErrorText="This field is required to fill." 
      ErrorDisplayMode="ImageWithTooltip" ValidationGroup="RejectReason" 
      ValidateOnLeave="False"> 
       <RequiredField IsRequired="True" ErrorText="This field is required to fill."> 
       </RequiredField> 
     </ValidationSettings> 
    </dxe:BaseComboBox> 


<dx:ASPxButton ID="btn" runat="server" Text="Validate" 
AutoPostBack="False" CausesValidation="False"> 

     <ClientSideEvents Click="function(s, e) { 

    if (chkIsChecked.GetValue()) // if checked then validate the group 
    { 
       ASPxClientEdit.ValidateGroup('RejectReason'); 
    } 
     }" /> 
    </dx:ASPxButton> 

これらのマニュアルに従って、あなたがやろうとしているものは何でも実現します。
How to: Validate a Group of Editors
How to: Validate All Editors on a Page
How to: Implement a Custom Validation
ASPxClientEdit.Validation Event

+0

私はボタンをクリックした後、OnClick = "btnSubmit_Click"であるbtnのボタンクリックイベントを追加しました。ページがコンボボックスを正常に検証しましたが、btnSubmit_clickイベントが発生します。 –

+0

AutoPostBack = "False"を使用してポストバックを停止しました –

関連する問題