Just a wild guess, but...
Is this on a second invocation? Remember, because of sticky fields, the -default is valid only on the first invocation, so an incoming field
of col_id of 2 on a second invocation will influence the "default".
If you don't want that behavior, set -override => 1 or
issue a param('col_id', undef) before you generate the HTML.