Hello,
I got a paginator from the ClickClick project and works just fine.
My only problem is that sometimes, i'd like to pass some parameters to the
next page and I don't always want to do this in the URL.  Since the
paginator is using a link - all the parameters will be passed in the URL.
I updated the paginator in such a way that it is using a submitLink and
submits a form with hidden parameters.  Unfortunately, something is off and
I can only get from page one to page two - i can't get to the last page and
next only goes one page up.  It must be something silly but I can't see it.
Or maybe I'm using a wrong approach?
I'm going to post the code that doesn't work and then the code that uses the
link and works.
Any help will be appreciated.

A problematic code:
protected void renderLast(HtmlStringBuffer buffer) {
        buffer.elementStart("li");
        String pageValue = String.valueOf(getPageTotal() - 1);     
        if (getCurrentPage() < getPageTotal() - 1) {            
            buffer.appendAttribute("class", "last");
            buffer.closeTag();            
            SubmitLink submitLink = getSubmitLink();    
                
            submitLink.setLabel(getLastLabelMessage());
            submitLink.setParameter(Table.PAGE, pageValue);
            submitLink.setTitle(getLastTitleMessage());
            Form form = new Form("nextForm");
            
            form.add(submitLink);            
            Field field = new HiddenField(Table.PAGE,String.class);            
            field.setValue(pageValue);
            form.add(field);          
            for (Enumeration<String> e = httpRequest.getParameterNames();
e.hasMoreElements();) {
                                String param = e.nextElement();
                                String value = httpRequest.getParameter(param);
                                if(!param.equals("column") &&
                                !param.equals("page") && 
                                !param.equals("actionLink"))
                                {       
                                        Field f = form.getField(param);         
                                                              
if (f != null)
                                                f.setValue(value);
                                        else
                                        {                                       
        
                                                f = new 
HiddenField(param,String.class);
                                                f.setValue(value);
                                                form.add(f);                    
                                                                   }
                                }
                        }       
                form.render(buffer);  
                

        } else {
            buffer.appendAttribute("class", "last-off");
            buffer.closeTag();
            buffer.append("<table><tr><td><tr><td>");
            buffer.append(getLastLabelMessage());
            buffer.append("</td></tr></td></tr></table>");
        }
        
        buffer.elementEnd("li");
    }


Below is the method that only uses links and works fine:
protected void renderLastOrig(HtmlStringBuffer buffer) {
        buffer.elementStart("li");
        String pageValue = String.valueOf(getPageTotal() - 1);        
        if (getCurrentPage() < getPageTotal() - 1) {            
            buffer.appendAttribute("class", "last");
            buffer.closeTag();
            buffer.append("<table><tr><td><tr><td>");
            AbstractLink controlLink = getControlLink();
            controlLink.setLabel(getLastLabelMessage());
            controlLink.setParameter(Table.PAGE, pageValue);
            controlLink.setTitle(getLastTitleMessage());
            
            
            StringBuffer params = new StringBuffer();
                
                for (Enumeration<String> e = httpRequest.getParameterNames();
e.hasMoreElements();) 
                {
                        String param = e.nextElement();
                        if(!param.equals("column") &&
                        !param.equals("page") &&                        
                        !param.equals("actionLink"))
                        {                       
                                controlLink.setParameter(param, 
httpRequest.getParameter(param));                               
                        }
                        
                }
            
            
            controlLink.render(buffer);
        } else {
            buffer.appendAttribute("class", "last-off");
            buffer.closeTag();
            buffer.append("<table><tr><td><tr><td>");
            buffer.append(getLastLabelMessage());
        }
        buffer.append("</td></tr></td></tr></table>");
        buffer.elementEnd("li");
    }

--
View this message in context: 
http://click.1134972.n2.nabble.com/ClickClick-paging-and-submit-links-tp6975563p6975563.html
Sent from the click-user mailing list archive at Nabble.com.

Reply via email to