проверить, есть ли в столбце таблицы пустая ячейка - PullRequest
0 голосов
/ 01 ноября 2018

в моем случае у меня есть 3 столбца, каждый столбец зависит от предыдущего. пользователь должен ввести все ячейки в столбце 1, чтобы столбец 2 был редактируемым, затем он вводит столбец 2, чтобы сделать столбец 3 редактируемым. если он очистил ячейку, то зависимые столбцы должны быть отключены.

как я могу справиться с этим с помощью JavaScript

пожалуйста, найдите ниже изображения:

enter image description here

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Я предполагаю, что ваша ячейка таблицы будет af:input text. Вам не нужен явно JS для достижения этой цели, как вы можете достичь этого в самом ADF. Так что, если у вас нет необходимости делать это в JS, вы можете попробовать это ниже. С кнопкой у нас есть action или actionListener, так же, как у нас valueChangeListener с inputText.

Предположим, у вас есть 2 входных текста (2 ячейки в таблице).

 <af:inputText value="#{bindings.ESal.inputValue}"
              label="#{bindings.ESal.hints.label}"
              required="#{bindings.ESal.hints.mandatory}"
              columns="#{bindings.ESal.hints.displayWidth}"
              maximumLength="#{bindings.ESal.hints.precision}"
              shortDesc="#{bindings.ESal.hints.tooltip}" id="it11"
              autoSubmit="true" valueChangeListener="#{bean1.textChange}"
             >
  <f:validator binding="#{bindings.ESal.validator}" />
</af:inputText>
  • Здесь введите autoSubmit = true для ввода текста, который будет Измененное.
  • Используйте событие valueChangeListener и создайте метод как textChange как показано выше. Он будет срабатывать всякий раз, когда в вводимом вами тексте есть изменения (при смене табуляции также будет срабатывать).

     <af:inputText label="Output label"  id="ol1" 
                partialTriggers="it11" binding="#{bean1.lbl}"
              disabled="true"/>    
    
  • Этот inputText зависит от первого. По умолчанию отключено.

  • Используйте PartialTrigger и назначьте в нем первый inputText.
  • Создать привязку для этого inputText, который можно использовать в управляемом боб.

      public void textChange(ValueChangeEvent valueChangeEvent) {
    // Add event code here...
    if(!(valueChangeEvent.getNewValue()==null || 
       valueChangeEvent.getNewValue().equals(""))) // checking input Text value
    { // if not null
        lbl.setDisabled(false);    //then enable it
        AdfFacesContext adfFacesContext = AdfFacesContext.getCurrentInstance();
        adfFacesContext.addPartialTarget(lbl); // refresh the binding
    }
    else
    {
        lbl.setDisabled(true);    //else disable it.
            AdfFacesContext adfFacesContext = AdfFacesContext.getCurrentInstance();
            adfFacesContext.addPartialTarget(lbl);    
    }
    

    }

0 голосов
/ 04 ноября 2018

Включите Java RowImpl для вашего ViewObject, чтобы вы могли контролировать возвращаемые данные в методах получения

...