Prati,

This is because you are only re-rendering the most recently selected label.

One solution is keep track of the previous "current selection"
(probably in your RefreshingView implementation - eg declare
"Component currentSelection;"), which you update in your Link's
onClick (ie "currentSelecton = contactLabel;") _after_ you remove the
style attribute (that you previously set) on currentSelection and add
currrentSelection to the AjaxRequestTarget so it too gets refreshed.

Make sense?

Regards - Cemal
jWeekend
OO & Java Technologies, Wicket
Consulting, Development, Training
http://jWeekend.com

On 11 March 2010 18:09, prati <pratibha.pari...@gmail.com> wrote:
>
> Hi
>
> I have got a refreshing view ,it contains list of links.I need to highlight
> the link when i click on that link.
>
> It works properly but if i click the next item in the list,the previous text
> remains highlighted.
>
> <wicket:extend>
>
> <table cellspacing="0" class="dataview">
>    <tr>
>
>        <th>First Name</th>
>
>    </tr>
>    <tr wicket:id="view">
>        <td> #     </td>
>
>    </tr>
> </table>
>
> </wicket:extend>
>
>
>
> public class RefreshingPage extends BasePage {
>
>
>        public RefreshingPage()
>        {
>                final List<IModel> contacts = new ArrayList<IModel>(10);
>
>                // populate list of contacts to be displayed
>
>                Iterator<Contact> it = rgetContacts().iterator();
>                while (it.hasNext())
>                {
>                        contacts.add(new Model(it.next()));
>                }
>
>                // create the refreshing view
>                RefreshingView view = new RefreshingView("view")
>                {
>                        /**
>                         * Return an iterator over models for items in the view
>                         */
>                       �...@override
>                        protected Iterator<IModel> getItemModels()
>                        {
>                                return contacts.iterator();
>                        }
>
>                       �...@override
>                        protected void populateItem(final Item item)
>                        {
>                                Contact contact = (Contact) 
> item.getModelObject();
>
>                                final Label contacteLabel = new 
> Label("aname",contact.getName());
>                                contacteLabel.setOutputMarkupId(true);
>
>                                item.add(new AjaxLink("name") {
>
>                                        private static final long 
> serialVersionUID = 1L;
>
>                                       �...@override
>                                        public void onClick(AjaxRequestTarget 
> target) {
>
>                                                if(target!= null) {
>                                                        contacteLabel.add(new
>                                                                        
> AttributeModifier("style", true, new AbstractReadOnlyModel() {
>                                                                               
> �...@override
>                                                                               
>  public String getObject() {
>                                                                               
>          return "background-color:#80b6ed;";
>                                                                               
>  }
>                                                                        }));
>                                                        
> target.addComponent(contacteLabel);
>                                                }
>
>                                        }
>
>
>
>                                }.add(contacteLabel));
>                        }
>                };
>
>                add(view);
>
>
>        }
> }
>
>
> Regards
> P
>
>
> moontz wrote:
>>
>> i tried that before.  did not work.  no compile or runtime errors, but the
>> source did not show the change.
>>
>> im thinking, since its an ajax link and because only the target panel
>> refreshes, the change to the link is not applied because the actual link
>> is not refreshed.  only the other panel is.  in which case i would need to
>> append javascript.  i was hping there was a pure wicket solutioin though
>> without using JS.
>>
>>
>>
>> igor.vaynberg wrote:
>>>
>>> final ListItem item
>>>
>>> -igor
>>>
>>> On Fri, Feb 13, 2009 at 7:36 AM, moontz <bmun...@yahoo.com> wrote:
>>>>
>>>> I would like to add an attribute to the ListItem element in the markup
>>>> (basically change the class style) on click of the link.  Below is my
>>>> snippet.  Any insight on how I can accomplish this?  Thanks in advance!
>>>>
>>>> ListView lv = new ListView("tabListView", tabList) {
>>>>                 protected void populateItem(ListItem item) {
>>>>                         AjaxLink ajaxLink = new AjaxLink("tabLink",
>>>> item.getModel()) {
>>>>                           public void onClick(AjaxRequestTarget target)
>>>> {
>>>>                                        item.add(new
>>>> SimpleAttributeModifier("class", "on"));  //
>>>> want to do this but do not have access to item object from inner class
>>>> --
>>>> ideas for this?
>>>>                                             .
>>>>                                             .
>>>>                                             .
>>>>
>>>>
>>>> --
>>>> View this message in context:
>>>> http://www.nabble.com/How-to-access-ListItem-from-ListView-from-AjaxLink--tp21998739p21998739.html
>>>> Sent from the Wicket - User mailing list archive at Nabble.com.
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>>> For additional commands, e-mail: users-h...@wicket.apache.org
>>>
>>>
>>>
>>
>>
>
> --
> View this message in context: 
> http://old.nabble.com/How-to-access-ListItem-from-ListView-from-AjaxLink--tp21998739p27867306.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
> For additional commands, e-mail: users-h...@wicket.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to