Наш проект, использующий PF5.1, у нас есть dataTable в составном компоненте. Поэтому после рендеринга страницы. идентификатор dataTable как j_idt123: tableForm: tableId.Как найти идентификатор компонента, включая составной идентификатор компонента из бэк-компонента
Перед поиском необходимо очистить материал фильтра для таблицы. Я попробовал использовать следующий код, чтобы найти его в бэкэнде, но он возвращает null
.
FacesContext.getCurrentInstance().getViewRoot().findComponent("tableId");
Поскольку этот компонент будет использоваться в другом файле Xhtml, это «j_idt123» вещь переоделся каждый раз. Каким будет правильный способ получить таблицу?
Возможно, вы захотите сделать шаг назад и запросить о нем специально: «Нам нужно очистить материал фильтра таблицы перед поиском» * вместо того, чтобы попытаться решить эту проблему. Там могут быть более эффективные способы решения проблемы «фильтра», которая не требует ручного захвата компонентов из дерева (которые вы должны стараться избегать во всей степени внутри бэк-компонента). – BalusC
@BalusC Я попытался очистить фильтрацию таблиц с помощью PF ('datatableWidgetVar'). ClearFilters(), но, похоже, не работает, тогда я собираюсь очистить его на стороне сервера. Он будет работать, когда идентификатор таблицы статичен, но не уверен, как получить идентификатор, который затем будет использоваться в составном компоненте. – Kuku
Возможно, главный ответ на этот вопрос может помочь вам: http://stackoverflow.com/questions/23797476/datatable-clearfilter-not-working-properly – sinclair