Dynamic columns in liferay-ui:search-container?

2019-03-24 16:00发布

问题:

I have tried the liferay-ui:search-container to fetch and display the database table records on UI in a table/grid format. By using the liferay-ui:search-container I am getting the output as shown below,

I am fetching the USER_ table records in the above screen shot.

Problem:

I wanted to make the grid columns dynamic like, I wanted to enable an option for end user to remove the unwanted columns and add the wanted columns in the respective grid/table.

EX:

In the above screen shot the the following columns are showing in a grid.

First Name, Last Name, Screen Name, Job Title, Organization, User Groups

Now If user wants to remove Job Title and wants to add Greetings and Mail Address columns on UI with click events with out touching/ modifying the code.

How can I implement this feature?

Note:

I need to implement this feature for custom models.

Queries:

1) Is there any api/methods to implement/enable this feature?

2) If not how can I do implement the steps? Any suggestions or steps to achieve this task?

回答1:

This can be achieved by adding a configuration page to your portlet.

You can develop portlet configuration page which can have required options to be configured and save as portlet preferences.

Later on while displaying the search container you can retrieve the portlet preferences and display only those columns which were selected in the configuration form.

Here is a link on how to develop the portlet configuration using portlet preferences: Implementing Configurable Portlet Preferences