动态显示基于Arraylist的liferay-search-container列?

时间:2015-07-14 13:59:37

标签: liferay hook liferay-6 liferay-theme liferay-aui

我正在尝试动态显示liferay网格的列。出于同样的原因,参考以下链接Dynamic columns in liferay-ui:search-container?中的一些建议,我给用户一个选项,在配置页面中选择所需的表列。配置页面的选定列将保存在数组列表中。

问题:现在我需要根据数组列表值显示列。而是对列属性进行硬编码,我需要迭代列表并在表格/网格中显示所选列。

假设我正在使用liferay默认的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>

需要一些建议,提前致谢

0 个答案:

没有答案