2010-07-14 4 views
2

Я развиваю нечто вроде корзины покупок. Я могу выбрать несколько элементов (щелкнув флажок рядом с этим элементом) и добавить их в список. Как я могу узнать, какой флажок я выбираю. Если я делаю этоselectBooleanCheckbox - Как узнать, какой флажок выбрать или отменить выбор?

<h:selectBooleanCheckbox value="#{document.checked}"/> 

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

+1

Связанные: [Выбор нескольких строк в час: Datatable] (http://balusc.blogspot.com/2006/06/using-datatables.html#SelectMultipleRows). – BalusC

+0

Я смотрю на это. Это выглядит многообещающе. Большое спасибо BalusC –

+0

Я потерял дар речи. Wow BalusC !!! какой всеобъемлющий пост. Вы занимаетесь частным консалтингом, BalusC? –

ответ

4

У вас должен быть управляемый bean-компонент, из которого вы получаете и устанавливаете логические значения для разных флажков (разные поля с getter и seters для каждого значения флажка).

Обновление: взгляните на этот пример, потому что я думаю, что это то, что вы должны делать. Там, где в примере говорится «Сотрудник», вы берете «статью» или что-то еще, что есть в вашей корзине.

http://www.javabeat.net/tips/43-how-to-use-hselectbooleancheckbox-within-hd.html

+1

ОК, это неясно в вопросе. Таким образом, в runtine генерируется несколько флажков. И нет полей в управляемом компоненте для получения выбора? Возможно, вам нужно будет сохранить выделение на скрытый вход и управлять им самостоятельно, а не управляемыми свойствами. – Zheileman

+0

Счастье, я просто обновляю свой пост. Можете ли вы немного разобраться в том, что означают, что вы сохранили мой выбор в скрытом виде? Можете ли вы предоставить несколько примеров кода? –

+0

Ухммм, я вижу, что здесь происходит. Таким образом, вы смещаете логику выбора обратно на модель, чтобы вы могли использовать EL и управляемый bean-компонент. Uhmmm очень умный: D Я думаю, что это определенно сработает. спасибо –