2016-08-02 3 views
0

В Primefaces Временная шкала после двойного щелчка по событию компонента «add» запускается, что создает новый узел в диаграмме. В моем приложении я хочу запретить пользователю использовать такое действие. Как это возможно?Как заблокировать событие от компонента Primefaces в JSF Ajax

+0

Вы использовали '' –

+0

Помог ли мой ответ в любом случае? Если не то, что было не так, и как я могу улучшить? Пожалуйста, оставьте комментарий, принять или проголосовать. – irieill

ответ

0

Есть много трюков, для этого, как

Если вызов Ajax вы можете показать загрузчик, пока это полный запрос Ajax при отключении экрана с помощью AjaxStatusexample

Вы также можете BlockUI компонент, он будет заблокировать/отключить только определенный список компонентов на вашей странице с помощью blockUiexample

Вы также отключите кнопку при нажатии и ajax для включения события ajax.

+0

BlockUI блокирует взаимодействие всего компонента с пользователем. Я хочу заблокировать только конкретное событие, пользователь должен уметь перетаскивать узлы временной шкалы, но должен быть помечен для добавления нового, созданного двойным щелчком. –

+0

Таким образом, вы можете отключить эту конкретную кнопку, используя '' – Sarz

+0

Это не конкретная кнопка, событие срабатывает, когда пользователь дважды щелкает, когда на Timeline @Sarz –

0

Из моего опыта <p:timeline /> еще не очень гибкий. Как указано в PrimeFaces Documentation для редактируемые атрибута:

Если это правда, то события могут быть отредактированы, изменены, созданы и удалены. События могут редактироваться только при выборе варианта по умолчанию (по умолчанию). Когда редактируемое верно, временная шкала может запускать события AJAX «изменить», «отредактировать», «добавить», «удалить», «отбросить». Этот глобальный параметр «редактируемый» может быть перезаписан для отдельных событий, установив значение в поле «редактируемый».

Одно из возможных решений для отключения (по крайней мере) добавление событий на временную шкалу, но сохранить редактируемые события, чтобы запретить редактирование на глобальном уровне, но разрешить редактирование на основе событий с чем-то вроде этого:

<p:timeline 
    value="#{timelineView.model}" 
    selectable="true" 
    editable="false" 
/> 
@ManagedBean 
@ViewScoped 
public class TimelineView implements Serializable { 

    private TimelineModel model; 

    public TimelineModel getModel() { 
     return model; 
    } 

    public void setModel(TimelineModel model) { 
     this.model = model; 
    } 

    @PostConstruct 
    protected void initialize() { 

     model = new TimelineModel(); 

     Calendar cal = Calendar.getInstance(); 
     cal.set(2016, Calendar.AUGUST, 3, 0, 0, 0); 

     TimelineEvent timelineEvent = new TimelineEvent("Editable Event", cal.getTime()); 
     timelineEvent.setEditable(true); 

     model.add(timelineEvent); 
    } 
} 
Смежные вопросы