Liferay Pagination无效

时间:2015-12-18 07:24:02

标签: liferay liferay-6

我创建了MVC portlet。在doView方法中,我根据当前登录用户获取自定义列表(自定义)。

[Serializable]
class Kund
{
    //Properties

    public string Förnamn { get; set; }
    public string Efternamn { get; set; }
    public string Personnummer { get; set; }
    public string GatuAdress { get; set; }
    public string PostAdress { get; set; }
    public string Telefon { get; set; }
    public string Mobil { get; set; }



    public List<Konto> kontolista
    {
        get; set;
    }

    public Kund()
    {
        kontolista = new List<Konto>();
    }

    // Metoder

    public void BytaAdress(string nyttFörnamn, string nyttEfternamn, string nyGatuAdress, string nyTelefon, string nyMobil)
    {
        Förnamn = nyttFörnamn;
        Efternamn = nyttEfternamn;
        GatuAdress = nyGatuAdress;
        Telefon = nyTelefon;
        Mobil = nyMobil;
    }

    public void ÖppnaKonto(Konto nyttKonto)
    {
        kontolista.Add(nyttKonto);
    }

    public override string ToString()
    {
        return Förnamn + " " + Efternamn;
    }
}

在view.jsp中,我使用delta 5创建了“ liferay-ui:search-container ”。当我点击“下一个”或“上一个“它获取了接下来的5条记录,并且在 view.jsp 中工作正常。

现在,用户从“操作”中选择“编辑”选项。现在获取当前记录ID并调用editRecord方法[在此方法中我再获取两个列出来自MVC类的基于所选记录的(联系和活动),然后加载到具有相应列表,对象和变量的其他“ edit.jsp ”。

在“edit.jsp”中还有两个liferay-ui:search-container's,当我点击“编辑中的'liferay-ui:search-container'中的'next'或'previous'按钮时。 jsp“它回到上一页,即执行doview方法。

如何从 liferay-ui:search-container 中获取“edit.jsp”中的下一组记录。两个 liferay-ui:搜索容器显示列表的总数,但不提取下一组记录。

@Override
    public void doView(RenderRequest renderRequest, RenderResponse renderResponse){
List<LeadPojo> leadpojoli = new ArrayList<LeadPojo>();
LeadList lead_list = new LeadList();
leadpojoli = lead_list.getRecords(themeDisplay.getUserId()+"");
renderRequest.setAttribute("all_lead", leadpojoli);
super.doView(renderRequest, renderResponse);
}

edit.jsp

private void editRecord(ActionRequest request, ActionResponse response,String backURL) throws IOException {
     String recordId = ParamUtil.getString(request,'selectedId');
    List<LeadActivity> leadactivityli = new ArrayList<LeadActivity>();
    LeadProcess call = new LeadProcess();
    leadactivityli = call.getList(recordId);

    List<ContactPojo> allcon = new ArrayList<ContactPojo>();
    ContactList conli = new ContactList();
    allcon = conli.getContactList(recordId);
           request.setAttribute("allcontacts", allcon); 

            request.setAttribute("edit_leadactivity", leadactivityli);
            response.setRenderParameter("mvcPath","/html/Edit.jsp");

    }

2 个答案:

答案 0 :(得分:0)

您似乎没有对您的portlet类说,当您单击Next中的edit.jsp按钮时必须重定向,因此默认情况下它会重定向到view.jsp并执行doView( )。尝试使用custom iteratorURL来实现此目的。

此外,我想指出,即使结果是分页的,你显然也在管理整个列表(因此它只是一个“前端分页”):我希望列表不会增长太多。

答案 1 :(得分:0)

redirect中设置一个参数<portlet:renderURL>,并根据您要呈现的页面设置其值。

现在获取portlet类的render方法中的redirect参数。

然后将其与您在<portlet:renderURL>中设置的值进行比较。如果返回true,则在此处获取您的recordId,然后根据此recordId获取两个并设置属性。

然后返回页面路径,如&#39; /html/edit.jsp' 。如果在liferay 7中使用SPRING MVC或MVCRenderCommand,则使用include方法或返回字符串。