Re: [struts-layout] как автоматически чекнуть первый элемент
От: Tomnkz  
Дата: 15.11.07 19:26
Оценка:
Во-первых можно отнаследоваться от CollectionTag и CollectionItemTag и реализовать такую функциональность.
Во-вторых добавить в бин свойство(firstID), в которое писать, либо идентификатор объекта, который первый в списке, либо null(или нереальное значение) в зависимости от того, есть ли objectId в коллекции.
После этого использовать collectionStyle, которое при совпадении с firstID будет отмечать этот элемент.

Здравствуйте, botWi, Вы писали:

W>вывожу коллекцию


W><layout:collection selectType="radio" selectProperty="objectId"

W> <layout:collectionItem
W> ...
W></layout:collection>


W>если objectId присутствует в коллекции, то все ОК, соответствующая строчка выбирается по умолчанию

W>если отсутствует -> то никакая не выбирается
W>как сделать так чтобы при ненахождении objectId в коллекции выбиралась первая строчка?

W>2 некошерных способа:

W>1) после загрузки страницы джаваскриптом проходим по всем радиобаттонам, если ни один ни чекнут -> чекаем первый
W>2) джава-скриптлетом перед показом коллекции проходим по всей коллекции, если objectId не найден, то меняем objectId в бине на objectId первого элемента коллекции
W>затем джава-скриптлетом после показа коллекции меняем objectId в бине обратно

W>а есть кошерные способы?


W>P.S.

W>в struts-layout бага (даже в транк версии)
W>но я не умею отсылать им баглисты (да и неохота возиться), если кто умеет то отошлите плиз
W>бага такая: если указать selectName то оно будет браться не из бина а хрен знает откуда
W>в fr.improve.struts.taglib.layout.collection.CollectionTag в методе isCurrentBeanSelected вместо Constants.BEAN_KEY должно стоять name (в трех местах)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.