Я использую 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