http://www.perlmonks.org?node_id=1057623


in reply to Re^3: HTML::Template with HTML::Pager
in thread HTML::Template with HTML::Pager

It's an array of hash refs. That's how you get the named fields out.

my $hashref = { 'rows' => "$i $x", 'offset' => "offset $offset", 'i' => "$i", 'x' => $x, 'INTERFACE' => \@r, }; push(@total, $hashref);

That's looped over a bunch of test data and then fed to get_data_callback as $data. It's just test junk but works as expected.

<TD BGCOLOR=#ffffff><TMPL_VAR NAME="rows"></TD>

produces the correct data stored in the hashref listed above.

The documentation doesn't mention the ability to pass as hash to get_data_callback so I'm not sure how/if that would work.

I've also been poking over the Pager.pm code between work issues but nothing has jumped out at me yet. It seems like either it's not possible or it's just not in the code because it's a default or obvious how it's suppose to work. Just not obvious to me. :)

thanks for looking,

-Matt

-- And this works --

Gen some random headers and add them to an array of hashrefs:

my @headers = ("1","2", "three", "4", "blank", "blank", "blank", "desc +-1", "desc-2", "desc-3", "desc-4", "desc-5"); for (@headers) { my $href = { 'HEADER' => $_ }; push(@h, $href); };

Make the primary array of hashrefs:

my $hashref = { 'rows' => "$i $x", 'offset' => "offset", 'name' => "some data $i", 'x' => $x, 'INTERFACE' => \@r, }; push(@total, $hashref);

Create the HTML::Template setup:

my $template = HTML::Template->new( filename => 'testing.tmpl', die_on_bad_params => 0, associate => $query, );

Add the header array of hashrefs to the template. Might be able to do this at the same time as you create the $template.. but for some reason it didn't work the first time I tried it.

$template->param(HEADER => \@h );

That works with this Template:

<TMPL_VAR NAME="PAGER_JAVASCRIPT"> <FORM> <TABLE BORDER=0 BGCOLOR=#000000 WIDTH=100%> <TR><TD><TABLE BORDER=0 WIDTH=100%> <!-- TMPL_LOOP NAME="HEADER" --> <TH BGCOLOR=#ffffff><!-- TMPL_VAR NAME="HEADER" --></TH> <!-- /TMPL_LOOP --> </TR> <TMPL_LOOP NAME="PAGER_DATA_LIST"> <TR> <TD BGCOLOR=#ffffff><TMPL_VAR NAME="rows"></TD> <TD BGCOLOR=#ffffff><TMPL_VAR NAME="offset"></TD> <TD BGCOLOR=#ffffff><TMPL_VAR NAME="name"></TD> <TD BGCOLOR=#ffffff><TMPL_VAR NAME="x"></TD> <!-- TMPL_LOOP NAME=INTERFACE --> <TD BGCOLOR=#ffffff><!-- TMPL_VAR NAME="description" --></TD> <!-- /TMPL_LOOP --> </TR> </TMPL_LOOP> <TR><TD><TD BGCOLOR=#DDDDDD COLSPAN=15 ALIGN=CENTER> <TMPL_VAR NAME="PAGER_PREV"> <TMPL_VAR NAME="PAGER_JUMP"> <TMPL_VAR NAME="PAGER_NEXT"> </TD></TR> </TABLE> </TABLE> <TMPL_VAR NAME="PAGER_HIDDEN"> </FORM>

Gives me the correct <TH></TH> headers I want. Cool beans.

-Matt