Hello, everyone! Great tip by Jens about OptionModel attributes!
If you didn't need to have data-attributes, you could style the select options using CSS attribute selectors: option[value="fa-globe"]::before { content: url(url/to/fa-globe/image.png) ... } On Thu, Nov 15, 2018 at 9:37 AM Jens Breitenstein <mailingl...@j-b-s.de> wrote: > Hi David/Ben > > The SelectModelRender makes use of attributes by > > ... > writeAttributes(optionModel.getAttributes()); > ... > > And this method is implemented first in "AbstractOptionModel" and > returns "null". > So as Ben stated just adding the entry > > "data-icon" -> "glyphicon glyphicon-eye-open" > > to a map should in your OptionModel should do the trick. > > Jens > > > Am 15.11.18 um 09:24 schrieb Ben Weidig: > > Hi, > > > > as far as I can tell from the code and documentaion the class OptionModel > > supports additional attributes with its .getAttributes() method. So you > > should only need to implement your own OptionModel and build your > > SelectModel with it. > > > > Hope this helps. > > > > Ben > > > > On Thu, Nov 15, 2018 at 7:23 JumpStart < > geoff.callender.jumpst...@gmail.com> > > wrote: > > > >> Very good question. I don’t know the answer, but here’s an idea… > >> > >> The Select component does not have a class parameter, but it does render > >> informal parameters. So if you specify class=“selectpicker” then I’d > expect > >> it will be rendered with class=“selectpicker”. By default it renders the > >> "select" element with class=“form-control”, so it might be best if you > >> specify class=“form-control selectpicker”. > >> > >> As for overriding the rendering of the “option” element, I think we come > >> unstuck. The difficulty I see is that OptionModel has only a label and > >> value. You need label, image, and value. > >> > >> I think your best bet is to copy OptionModel and Select to new classes > and > >> and modify them suit your purposes. They aren’t long or complicated. > >> > >> HTH, > >> > >> Geoff > >> > >>> On 15 Nov 2018, at 1:30 pm, D. R. <d.re...@googlemail.com.INVALID> > >> wrote: > >>> Hi, > >>> > >>> how can i get control of the option elements within a t:select? > >>> > >>> I want to provide a unique data-icon property for each option. > >>> > >>> <t:select t:id="iconCode" > >> t:model="literal:fa-globe=Globe,fa-flask=Flask,fa-user-tie=User-tie"> > >>> </t:select> > >>> > >>> will render: > >>> > >>> <select class="form-control" id="iconCode" name="iconCode"> > >>> <option value=""></option> > >>> <option value="fa-globe">Globe</option> > >>> <option value="fa-flask">Flask</option> > >>> <option value="fa-user-tie">User-tie</option> > >>> </select> > >>> > >>> i need something like > >>> > >>> <select class="selectpicker" id="iconCode"> > >>> <option data-icon="fa-globe"> > >>> Globe > >>> </option> > >>> <option data-icon="fa-flask"> > >>> Flask > >>> </option> > >>> <option data-icon="fa-user-tie"> > >>> User-tie > >>> </option> > >>> </select> > >>> > >>> i want to add class="selectpicker" to the t:select in order to let > >> bootstrap convert the select to a dropdown with icons. > >>> Kind regards > >>> David > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >>> For additional commands, e-mail: users-h...@tapestry.apache.org > >>> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > >> For additional commands, e-mail: users-h...@tapestry.apache.org > >> > >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > -- Thiago