В калитке, как я могу создать RadioGroups, которые не определены иерархией / компоновкой компонентов?

Я использую Wicket и хочу создать сетку переключателей с помощью HTML, как показано ниже (внешние списки будут отображаться вертикально, внутренние списки будут отображаться горизонтально).

Количество групп варьируется - может быть ABC, ABCD, ABCDE и т. Д.

Я бы хотел, чтобы переключатели были сгруппированы вертикально.

К сожалению, кажется, что RadioGroup позволяет группировать переключатели только в соответствии с группировкой, определенной их расположением.

Например:

RadioGroup group = new RadioGroup("radioGroupA");

group.add( new Radio("myradio", new Model(1)) ;

Проблема в том, что я не могу затем размещать элементы так, как я хочу.

Есть ли другой способ? Вручную указать имя и собрать результаты?

ОБНОВЛЕНИЕ: Я заметил, что Radio может принимать RadioGroup в качестве параметра. Таким образом, можно сделать что-то вроде:

// create some groups
for (0..n) {
  RadioGroup group = new RadioGroup("myRadioGroup", new Model { .. } );
  groupArray.add(group)
}

//create a ListView for the RadioGroups so we can attach them to page
ListView radioListView = ListView("radioGroupList") { populate from groupArray }
add(radioListView);

// create our grid of radio buttons
// outer -> rows 
for (0..x) {
  // inner -> columns
  for (0..n)
    // supply group from our groupArray
    add( new Radio("myradio", new Model(1), groupArray.get(n) ));
  }
}

Затем я могу добавить Radio и RadioGroup в форму независимо от макета, что дает желаемый эффект с точки зрения группировки.

Но теперь, когда я отправляю, я получаю следующую ошибку:

WicketMessage: отправлено значение http post [radio33] для компонента RadioGroup [2: tContainer: list: 2: tPanel: myForm: ordersRadioGroupList: 0: orderRadioGroup] является недопустимым, потому что он не содержит относительного пути к радиокомпоненту. Из-за этого компонент RadioGroup не может разрешить выбранный компонент Radio, на который указывает недопустимое значение. Возможная причина в том, что иерархия компонентов изменилась между рендерингом и отправкой формы.

Есть идеи, что это означает?

Слово с ошибкой «компонент» предполагает, что его не часто видят.

Я использую Wicket 1.4.12.

Я нашел этот билет Apache, который выглядит похожим: https: //issues.apache. org / jira / browse / WICKET-1055

5
задан Tom 4 November 2010 в 15:59
поделиться