Сообщение о валидации от Javascript - PullRequest
1 голос
/ 30 марта 2012

У меня есть вопрос здесь.Как отключить проверку при установленном флажке.я пробовал ValidatorEnable (control, false), он не может работать для меня.

<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('');
    }
}

Спасибо за совет.

Ответы [ 2 ]

0 голосов
/ 30 марта 2012

Как я выяснил из вашего вопроса, вы ищете группу проверки:

Сначала установите ValidateOnLeave = "False" в ValidationSettings и укажите имя группы проверки для ваших элементов управления, а затем используйте клиентскую сторону 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>

Следуйте этой документации и реализуйте все, что вы пытаетесь сделать.
Как: проверить группу редакторов
Как: проверить все редакторы на странице
Как: реализовать пользовательскую проверку
Событие ASPxClientEdit.Validation

0 голосов
/ 30 марта 2012

Для этого вам нужно использовать пользовательскую проверку. Примерно так:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...