Я пытаюсь динамически отображать столбцы сетки liferay. По той же причине, ссылаясь на некоторое предложение по следующей ссылке: Dynamic columns in liferay-ui:search-container?, я предоставляю пользователю возможность выбрать нужные столбцы таблицы на странице конфигурации. Выбранные столбцы страницы конфигурации сохраняются в списке массивов.Динамически отображать столбцы liferay-search-container на основе Arraylist?
выпуск: теперь мне нужно отобразить столбцы на основе значений списка массивов. Вместо жесткого кодирования свойств столбца мне нужно перебрать список и отобразить выбранный столбец в таблице/сетке.
Предположим, что я работаю над моделью USER_ по умолчанию для лифта. Все выбранные столбцы страницы конфигурации сохраняют в одном списке следующим образом,
ArrayList<String> al = new ArrayList<String>();
Iterator<String> itr = al.iterator();
while(itr.hasNext())
{
String columnName = itr.next();
columnName = columnName.trim().toLowerCase();
String columnVal = portletPreferences.getValue(columnName, StringPool.BLANK);
al.add(columnName);
}
Теперь давайте предположим, что пользователь выбрал следующие столбцы на странице конфигурации {имя, Фамилия, Отображаемое имя}. Таким образом, список будет содержать только эти три значения.
На основе этих избранных столбцов мне необходимо динамически создавать столбцы [<liferay-ui:search-container-column-text>
] в контейнере поиска.
<liferay-ui:search-container delta="5" emptyResultsMessage="no-users-were-found">
<liferay-ui:search-container-results
results="<%= ListUtil.subList(users, searchContainer.getStart(),searchContainer.getEnd()) %>"
total="<%= totalNoOfUsers %>">
</liferay-ui:search-container-results>
<liferay-ui:search-container-row className="com.liferay.portal.model.User" keyProperty="userId" modelVar="user">
</liferay-ui:search-container-row>
<liferay-ui:search-iterator />
</liferay-ui:search-container>
Как создать столбцы с жестким кодированием следующим образом,
<liferay-ui:search-container-column-text name="Last Name" value="<%= user.getLastName() %>">
</liferay-ui:search-container-column-text>
нужны некоторые предложения, спасибо заранее
Отличный !! Он работает нормально, но он работает только для полей значений типа string. Не могли бы вы предложить мне, как я могу отображать значения столбца TIMESTAMP, BIT INTEGER и BIGINT. Я пробовал , но он не применим для даты аргумента. Пожалуйста, предложите некоторое решение, пожалуйста ... –