If you have a UI where it doesn't make sense to place all controls in a single container (or set of containers), you can place individual UI Components manually outside Paginator's configured container(s).
For this example, we'll create a table from a data array and render a few controls into the generated
<tfoot> using the Paginator's
template. We'll also subscribe to the Paginator's
render event with a callback that renders a CurrentPageReport UI Component into a
<div> above the table.
In this example, we'll be working with a data array stored in
We'll start with two empty divs:
div#tbl we write some application code to generate a table with a tfoot. The table will be wrapped in an object with an API including a
Create a Paginator and a method to subscribe to its
changeRequest event. Note the configured container is a generated
<div> and is not yet on the page. We'll append this to the
<tfoot> when it is available.
To synchronize the rendering of all UI Components, we subscribe to the Paginator's
render event with a callback to add a CurrentPageReport into
render methods take a string seed usually used by Paginator to guarantee uniqueness of generated IDs when rendering into multiple containers. When rendering them manually, you'll need to provide your own seed. If you render more than one of the same type of UI Component, respective
render calls must be passed different seeds.
Render the table and the Paginator. The CurrentPageReport will be rendered in response to the Paginator's emitted
The Paginator was configured to use a
<div> created off the page DOM, so the
template controls are not visible until the
<div> is then added to the table's
Some convenience methods were created to aid in the DOM structure assembly.
Note: You are viewing this example in debug mode with logging enabled. This can significantly slow performance.
All YUI 2.x users should review the YUI 2.8.2 security bulletin, which discusses a vulnerability present in YUI 2.4.0-2.8.1.