2012-04-21 6 views
4

Я хочу реализовать пользовательскую фильтрацию на p: dataTable. В заголовке dataTable у меня есть p: inputText, который я хочу отфильтровать таблицу через ajax. Проблема, с которой я сталкиваюсь, заключается в том, что метод bean не вызывается тегом p: ajax. Вот виновный фрагмент кода:Слушатель не вызван p: ajax на p: inputText

<h:form id="form1"> 
     <p:dataTable id="selectTable" var="select" 
      selectionMode="multiple" rowKey="#{select.id}" 
      value="#{pc_Selectcourses.allCourses}"> 
      <f:facet name="header"> 
       <p:outputPanel> 
       Search For Courses Completed: 
       <p:inputText id="filterEntry" value="#{pc_Selectcourses.query}"> 
        <p:ajax event="keyup" update=":form1:selectTable" 
         listener="#{pc_Selectcourses.filterListener}" /> 
       </p:inputText> 
       </p:outputPanel> 
      </f:facet> 
      <!-- table columns here, etc. --> 
     </p:dataTable> 
    </h:form> 

И подкладочный боб:

public void filterListener() { 
    System.out.println("Hello world, hope you're listening..."); 
} 

Когда я набираю в inputText, то SYSOUT никогда не печатается. Я также заметил, что мой значок ajax notifier/status не показывает никакой активности, поэтому я сомневаюсь, что что-то происходит.

Редактировать

Я просто попытался перетащить р: АЯКС из палитры в Eclipse в мой Xhtml код и он сказал, чтобы использовать эту функцию, что мне нужно, чтобы импортировать библиотеки в мое рабочее пространство. Я позволил ему продолжить, и он добавил файл v.2.2 jfspaces в Web_INF/lib. P: ajax все еще не работает.

Я смущен, почему он спросил об этом, так как все компоненты Primefaces работают отлично. Возможно, что-то не так с настройкой проекта?

+0

Ваш входной текст не имеет атрибута значения. Это вопрос с копией/вставкой? –

+0

Да, я случайно удалил его, вставив вопрос. Я отредактировал вопрос, чтобы задуматься. Благодарю. –

ответ

0

Я видел эту проблему сегодня. Оказывается, что в вашей фонотеке, если у вас есть функция getter для query, но не функция setter, p: ajax не будет вызывать свой прослушиватель. Поскольку вы не размещали этот раздел своего Java-кода, я предполагаю, что есть хорошие шансы, что это ваша проблема.

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