Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как изменить расположение переключателя или флажка

Автор вопроса: user339108Ответов: 4

Мы используем h:selectManyCheckbox и h:selectOneRadio для отображения выбора для определенного элемента. Мы хотели бы гибко размещать варианты выбора по горизонтали, вертикали или сортировать по нескольким столбцам.

e.g.
1. Horizontally
one two three four five six

2. Vertically
one
two
three
four
five
six

3. 2 columns
one two
three four
five six

4. 3 columns
one two three
four five six

Как мы можем это сделать, используя существующие теги jsf или внося соответствующие изменения.

  • Я думаю, что пользовательские компоненты пользовательского интерфейса JSF или собственный тег jsp - это решение для вас... Garis M Suero 10.08.2010
  • отформатированный текст, чтобы сделать его более понятным user339108 10.08.2010
  • для 1-го и второго вопросов вы можете использовать атрибут макета, например layout=lineDirection или layout=pageDirection внутри этих тегов jsf. khairil 10.08.2010
  • @khairil - да, мы знаем, что 1,2 решаются по умолчанию, мы заинтересованы в решении 3,4 наряду с существующей поддержкой user339108 10.08.2010

htmljsfrichfaces

Ответы

Ответ 1 · рейтинг 2 · Losted

Вы можете попробовать использовать библиотеку Apache Tomahawk со свойством layoutWidth. Или создайте свой собственный компонент JSF

Ответ 2 · Garis M Suero

  1. Во-первых, четко определитесь, чего вы хотите...
  2. Взгляните на: Разработка пользовательского Тег JSF
  3. Знайте, какие атрибуты вы можете передать в своем новом пользовательском теге, например (<h:customRadioButtons list="arraylist" style="table" name="rbuttons" columns="2" />)
  4. Разработайте свой будущий customTag...

Ответ 3 · khairil

используя томагавк, мы можем попробовать использовать layout="spread", например:

 <t:selectOneRadio id="test" value="one" layout="spread" border="1">
    <f:selectItem itemLabel="one" itemValue="one" />
    <f:selectItem itemLabel="two" itemValue="two" />
    <f:selectItem itemLabel="three" itemValue="three" />
    <f:selectItem itemLabel="four" itemValue="four" />
    <f:selectItem itemLabel="five" itemValue="five" />
  </t:selectOneRadio>
  <t:panelGrid columns="2">
    <t:radio for="test" index="0"></t:radio>
    <t:radio for="test" index="1"></t:radio>
  </t:panelGrid>
  <t:panelGrid columns="3">
    <t:radio for="test" index="2"></t:radio>
    <t:radio for="test" index="3"></t:radio>
    <t:radio for="test" index="4"></t:radio>
  </t:panelGrid>

затем используйте ajax для повторного рендеринга этого t: selectOneRadio, чтобы изменить его на другой макет.

Ответ 4 · рейтинг -2 · TaherT

Вы можете сделать для этого лицевую панель и настроить свой макет, используя и привязываясь к Mybean, содержащему идентификатор, значение, проверено ....

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы