2016-02-03 2 views
4

Возможно ли иметь несколько событий в одном p: ajax?Несколько событий в том же p: ajax в PrimeFaces

Что-то вроде этого:

<p:ajax event="firstEvent,secondEvent..." listener="doSomething();" /> 
+1

Три буквы ... TR Y ... (и «йоЗотеЬЫпд();» никогда не будет работать, если вы создаете псевдокод, сделайте это хотя бы немного лучше, -)) – Kukeltje

+0

Привет, спасибо , но здесь нужно было показать определение определения события или что я имею в виду. Конечно, кто это пробовал, он обнаружил, что он не работает. Речь идет о существовании некоторой формы именования, как в этом псевдокоде. Извините, если мне было недостаточно ясно. – Waickem

+0

Ну, если это не сработает, и вы не найдете никакой документации об этом, tge только вы можете сделать, попробуйте с другим простым примером jsf. Если он тоже не работает, возможно, это не поддерживается. Спецификации jsf открыты. Btw – Kukeltje

ответ

1

Столкнувшись с той же проблемой, и наткнулся на этот пост. После тривиального исследования «множественные события в том же p: ajax» -подходе не будут работать. Он не поддерживается, по крайней мере, для тестируемой версии Primefaces 5.3. Исключение, как это будет возникать:

javax.faces.view.facelets.TagException: <p:ajax> Event:firstEvent,secondEvent is not supported. 

Некоторые исходные коды из AbstractBehaviorHandler класса:

ClientBehaviorHolder holder = (ClientBehaviorHolder) parent; 

    String eventName = getEventName(); 

    if (null == eventName) { 
     eventName = holder.getDefaultEventName(); 
     if (null == eventName) { 
      throw new TagException(this.tag, "Event attribute could not be determined: " + eventName); 
     } 
    } else { 
     Collection<String> eventNames = holder.getEventNames(); 
     if (!eventNames.contains(eventName)) { 
      throw new TagException(this.tag, "Event:" + eventName + " is not supported."); 
     } 
    } 
2

Я знаю, что это позже, но я нашел и способ сделать это, Вам нужно только положить N теги р: Ajax, то есть:.

<p:calendar id="startDate" value="#{bean.date}" 
    pattern="dd.MM.yyyy" 
    validator="#{bean.checkDate}"> 
    <p:ajax update="dialog:endDate" event="dateSelect" /> 
    <p:ajax update="dialog:endDate" event="keyup" /> 
</p:calendar> 
+2

Вопрос: _ «Несколько событий в ** том же p: ajax ** в PrimeFaces» _. Ваш ответ нормальный, и да, конечно, это сработает. Вопрос состоял в том, чтобы сделать это совершенно по-другому, используя только один тег 'p: ajax' – Kukeltje

+0

Это полезный ответ. –

Смежные вопросы