Forums

Home » Liferay Portal » English » 3. Development »

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
bougroun zineb zineb
pagination with liferay
April 28, 2008 9:13 AM
Answer

bougroun zineb zineb

Rank: Junior Member

Posts: 36

Join Date: April 16, 2008

Recent Posts

hi,
i want to implement a pagination using liferay
i have a table with many rows (20 rows) and I want to use a pagination.
I added this lignes in my jsp file
<%
SearchContainer searchContainer = new SearchContainer();
searchContainer.setDelta(5);
%>

<liferay-ui:search-iterator searchContainer="<%= searchContainer %>" paginate="<%= true %>" />
but i don't have a result
any idea please

thx
bougroun zineb zineb
RE: pagination with liferay
April 29, 2008 7:30 AM
Answer

bougroun zineb zineb

Rank: Junior Member

Posts: 36

Join Date: April 16, 2008

Recent Posts

help me pleaz
Auditya manikanta Vadrevu
RE: pagination with liferay
August 19, 2008 11:53 PM
Answer

Auditya manikanta Vadrevu

Rank: Liferay Master

Posts: 621

Join Date: May 6, 2008

Recent Posts

hi bougroun zineb zineb ,

i am also working for the same aspect , i have done it manually with my logic but after seeing some posts in forums i came to know that it is possible with the way liferay used. Did u got the solution , then let me know ..
khomeini syahril
RE: pagination with liferay
May 6, 2009 10:31 PM
Answer

khomeini syahril

Rank: Junior Member

Posts: 56

Join Date: October 15, 2008

Recent Posts

Hi Zineb
have you solved your problem? would you like to share it with me, how you make use the searchContainer?what do we have to put on the import lines?
thx
Jeffrey Handa
RE: pagination with liferay
May 6, 2009 10:46 PM
Answer

Jeffrey Handa

LIFERAY STAFF

Rank: Expert

Posts: 331

Join Date: December 1, 2008

Recent Posts

Have you tried the steps outlined in the following wiki article?

http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/SearchContainer
Auditya manikanta Vadrevu
RE: pagination with liferay
May 6, 2009 11:44 PM
Answer

Auditya manikanta Vadrevu

Rank: Liferay Master

Posts: 621

Join Date: May 6, 2008

Recent Posts

hi all,

first i applied my own code for pagination. now i know how to use liferay pagination. here is the sample code for listing users of a particular organization.


----
----

<%
List headerNames = new ArrayList();

      headerNames.add("NAME");   
      headerNames.add("USER PORTRAIT");   
      headerNames.add("JOB TITLE");   
      headerNames.add("E MAIL");   
      headerNames.add("PHONE NUMBERS");   

PortletURL portletURL = renderResponse.createRenderURL();
portletURL.setWindowState(WindowState.MAXIMIZED);
portletURL.setParameter("struts_action", "/results/getUsers");

SearchContainer searchContainer = new SearchContainer(renderRequest, null, null, SearchContainer.DEFAULT_CUR_PARAM, SearchContainer.DEFAULT_DELTA, portletURL, headerNames, "There No Users To Display");

portletURL.setParameter(searchContainer.getCurParam(), String.valueOf(searchContainer.getCurValue()));

LinkedHashMap userParams = new LinkedHashMap();

long orgid = 15107;
String orgid = "15107";

if(orgid == 15107)
{
userParams.put("usersOrg", Long.parseLong(orgid));

}

int nbrUser= UserLocalServiceUtil.getOrganizationUsersCount(orgid);

List<User> results = UserLocalServiceUtil.search(company.getCompanyId(),null,null,userParams,searchContainer.getStart(),searchContainer.getEnd(),
searchContainer.getOrderByComparator()); 


searchContainer.setTotal(nbrUser);

searchContainer.setResults(results);

List resultRows = searchContainer.getResultRows();

for (int i = 0; i < results.size(); i++)
{
   
        User user2 = (User)results.get(i);

        ResultRow row = new ResultRow(user2, user2.getUserId(), i);

        PortletURL rowURL = renderResponse.createRenderURL();

        rowURL.setWindowState(WindowState.MAXIMIZED);

        rowURL.setParameter("struts_action", "/results/getUsers");

        rowURL.setParameter("redirect", searchContainer.getIteratorURL().toString());

        rowURL.setParameter("p_u_i_d", String.valueOf(user2.getUserId()));

              String firstname = user2.getFirstName();

              row.addText(firstname);

         /* similarly for all other details */

            resultRows.add(row);

}

%>

<liferay-ui:search-iterator searchContainer="<%= searchContainer %>" />


With Regards,
V.Auditya
srilatha etukuri
RE: pagination with liferay
November 28, 2009 6:12 AM
Answer

srilatha etukuri

Rank: New Member

Posts: 4

Join Date: November 28, 2009

Recent Posts

Hi Audithya,

I am using liferay5.1 and tried the approach u gave. Pagination works fine for the first page. But when i try to go to next page the content of the first page (results 1-20 etc..) is getting loaded.
Are u aware of this kind of problem?
Let me know.
Auditya manikanta Vadrevu
RE: pagination with liferay
November 29, 2009 3:47 AM
Answer

Auditya manikanta Vadrevu

Rank: Liferay Master

Posts: 621

Join Date: May 6, 2008

Recent Posts

hi mamatha,

there might be some error in code .

check whether searchContainer.getStart() & ....getEnd() values are are changing for the second page.

and also post your code.
srilatha etukuri
RE: pagination with liferay
November 30, 2009 6:14 AM
Answer

srilatha etukuri

Rank: New Member

Posts: 4

Join Date: November 28, 2009

Recent Posts

Hi,

The start and end values are not getting changed and i see them 1, 20 respectively every time.
Please find the code i am using below.

<%
List<String> headerNames = new ArrayList<String>();

headerNames.add("id");
headerNames.add("text");

PortletURL portletURL = renderResponse.createRenderURL();
portletURL.setWindowState(WindowState.MAXIMIZED);

SearchContainer searchContainer = new SearchContainer(renderRequest, null, null, SearchContainer.DEFAULT_CUR_PARAM, SearchContainer.DEFAULT_DELTA, portletURL, headerNames, "Nothing to display");
portletURL.setParameter(searchContainer.getCurParam(), String.valueOf(searchContainer.getCurValue()));

//System.out.println(" " + searchContainer.getCurParam() + " " + searchContainer.getCurValue());
//System.out.println("searchContainer.getStart() " + searchContainer.getStart() + " searchContainer.getEnd() " + searchContainer.getEnd());
List results = ListUtil.subList(allResults, searchContainer.getStart(), searchContainer.getEnd());

int total = allResults.size();
searchContainer.setTotal(total);
searchContainer.setResults(allResults);

List resultRows = searchContainer.getResultRows();

for (int i = 0; i < results.size(); i++) {
SomeObj obj = (SomeObj)results.get(i);
ResultRow row = new ResultRow(obj, obj.getId(), i);
row.addText(String.valueOf(obj.getId()));
row.addText(obj.getOriginalText());
resultRows.add(row);
}
%>

<liferay-ui:search-iterator searchContainer="<%= searchContainer %>" />
Auditya manikanta Vadrevu
RE: pagination with liferay
December 1, 2009 12:01 AM
Answer

Auditya manikanta Vadrevu

Rank: Liferay Master

Posts: 621

Join Date: May 6, 2008

Recent Posts

Does the page number changes ? ( getting the same results of 1 to 20 in page 2 )

first check with the whole list (allResults), it is working or not,
Mallepula NarayanaGoud
RE: pagination with liferay
April 26, 2011 6:57 AM
Answer

Mallepula NarayanaGoud

Rank: Junior Member

Posts: 93

Join Date: June 18, 2009

Recent Posts

Hi Srilatha etukuri,

Iam using I am using liferay5.1 and iam facing same problem.
Did you got solution?

Iam sending sample code:


<%
List<Role> rolesList = RoleUtil.findAll();



SearchContainer searchContainer = new SearchContainer();

List<String> headerNames = new ArrayList<String>();

headerNames.add("Role-id");
headerNames.add("Role-Name");
int total = rolesList.size();
searchContainer.setTotal(total);
searchContainer.setDelta(5);
searchContainer.setHeaderNames(headerNames);
searchContainer.setResults(rolesList);
searchContainer.setEmptyResultsMessage("there-are-no-live-sessions");

List resultRows = searchContainer.getResultRows();

for (int i=0; i < rolesList.size(); i++)
{
Role roles = (Role)rolesList.get(i);
String roleId = String.valueOf(roles.getRoleId());

//out.println(roles.getRoleId());
//out.println(roles.getName());

ResultRow row = new ResultRow(roles, roles.getRoleId(), i);

// RoleId
row.addText(roleId );
// RoleName
row.addText(roles.getName());
// Add result row

resultRows.add(row);
}
%>

<liferay-ui:search-iterator searchContainer="<%= searchContainer %>" paginate="true"/>
Mallepula NarayanaGoud
RE: pagination with liferay
April 28, 2011 9:53 PM
Answer

Mallepula NarayanaGoud

Rank: Junior Member

Posts: 93

Join Date: June 18, 2009

Recent Posts

Hi,

Now it is working fine for me......
Sample Code for it:

<%
List<Role> rolesList = RoleUtil.findAll();



PortletURL portletURL = renderResponse.createRenderURL();

SearchContainer searchContainer = new SearchContainer(renderRequest, null, null, SearchContainer.DEFAULT_CUR_PARAM, 10, portletURL, null, null);

//List<Role> birthdayUsersList = <filtered list>;

List<Role> displayList=rolesList.subList(searchContainer.getStart(), rolesList.size());

out.println("Start :" + searchContainer.getStart());
out.println("End :" + searchContainer.getEnd());
out.println("Size :"+ displayList.size());

if( searchContainer.getEnd() < rolesList.size())
{


displayList=rolesList.subList(searchContainer.getStart(), searchContainer.getEnd());
out.println("Size :"+ displayList.size());

}
searchContainer.setResults(displayList);

searchContainer.setTotal(rolesList.size());





//SearchContainer searchContainer = new SearchContainer();

List<String> headerNames = new ArrayList<String>();

headerNames.add("Role-id");
headerNames.add("Role-Name");
int total = rolesList.size();

//searchContainer.getStart();
//searchContainer.getEnd();
//searchContainer.getOrderByComparator();

//searchContainer.setTotal(total);
//searchContainer.setResults(rolesList);
//searchContainer.setDelta(5);
searchContainer.setHeaderNames(headerNames);
//searchContainer.setEmptyResultsMessage("there-are-no-live-sessions");





List resultRows = searchContainer.getResultRows();

for (int i=0; i < displayList.size(); i++)
{
Role roles = (Role)displayList.get(i);
String roleId = String.valueOf(roles.getRoleId());

//out.println(roles.getRoleId());
//out.println(roles.getName());

ResultRow row = new ResultRow(roles, roles.getRoleId(), i);

// RoleId
row.addText(roleId );
// RoleName
row.addText(roles.getName());
// Add result row

resultRows.add(row);
}
%>

<liferay-ui:search-iterator searchContainer="<%= searchContainer %>" />


Thanks,
NarayanaGoud.
Ian Michael Smith
RE: pagination with liferay
April 28, 2011 11:01 PM
Answer

Ian Michael Smith

Rank: New Member

Posts: 1

Join Date: April 28, 2011

Recent Posts

ok