def self.per_page 20 end
Any suggestion on how I can calculate this value base on the size of the browser window?
Thanks
def self.per_page 20 end
Any suggestion on how I can calculate this value base on the size of the browser window?
Thanks
Why not allow the user to choose this value (i.e. via a drop down menu )?
If you go that route, don't forget to store this preference somewhere so your users don't have to set it every time. (I'm looking at you Blockbuster.com)
Eric
Ok, I tried as you suggested with:
<%= select_tag(:per_page, options_for_select(%w{10 20 30 40 50}, selected = session[:per_page]), :onchange => "session[:per_page] = this.value") %> Lines per page
I can't seem to get the :onchange to set a new value for session[:per_page]. I checked :onchange with an alert(this.value) and it did what I expected.
Can you proved a sample of what I should be doing in :onchange
Thanks.
Can you proved a sample of what I should be doing in :onchange
I've used an "Apply" button inside of form_tag, which sends params back to the controller and I set the session there.
If you wanted to use the :onchange event instead of requiring the user to click on a button, you would probably have to send an XMLHttpRequest to the server and then refresh the page with the new paginated data.
Eric
Thanks for your ideas.
I decided to make per_page an attribute of the user and set it at login. That way it gives all my list pages a common look.
I had already put this inside a form_tag I am using for a search box, so I didn't want to add another form_tag. The search box and the pagination boxes took up enough room on the page. Can you direct two different form_tags to appear on the same line?
I still don't get what I would put in the :onchange option. Can you give me an example?