No - I mean use jQuery, YUI, or whatever you are currently using (or custom
JS that you write without one of these frameworks), and just add a CSS class
to the dom element on the client-side. There is no reason to make a
roundtrip to the server to simply change the CSS class. That wastes time
and resources, and makes the app less responsive.
Do something (jQuery code) like
onfocus="$(this).parent().addClass('highlightedfield');" to get started,
then onblur="$(this).parent().removeClass('highlightedfield');"
--
Jeremy Thomerson
http://www.wickettraining.com
On Tue, Apr 6, 2010 at 3:02 PM, Daniela Valero
<[email protected]>wrote:
> Hi Jeremy, I'm doing something similar than Araun, but with
>
> item.add(new AjaxEventBehavior("onclick") {
> @Override
> protected void onEvent(AjaxRequestTarget target) {
> HighLitableDataItem<ThirdModelBasic> hitem =
> (HighLitableDataItem<ThirdModelBasic>)item;
> hitem.toggleHighlite();
>
> target.addComponent(item);
>
> }
> });
>
>
> But, when I click the item, it Highlites a few seconds, then turns back its
> normal style.
>
> Is that because you suggest do not do it with ajax?
> Is there a way to do this, without rendering all page?
> When you said "JS library and attach to onfocus.". Do you reference
> JSLibrarie inside wicketStuff trunk?
>
> 2010/4/6 Jeremy Thomerson <[email protected]>
>
> > Don't do this with AJAX - that's overkill. Just use a JS library and
> > attach
> > to onfocus.
> >
> > --
> > Jeremy Thomerson
> > http://www.wickettraining.com
> >
> >
> >
> > On Tue, Apr 6, 2010 at 1:21 PM, Arnaud Garcia <[email protected]
> > >wrote:
> >
> > > ok, find, so just do:
> > > item.setOutputMarkupPlaceholderTag(true);
> > > and
> > >
> > > myTextField.add(new AjaxEventBehavior("onfocus") {
> > >
> > > @Override
> > > protected void onEvent(AjaxRequestTarget target)
> > > {
> > > item.add(new SimpleAttributeModifier("class",
> > > "selected"));
> > > target.addComponent(item);
> > > }
> > > });
> > >
> > >
> > > Arnaud
> > > 2010/4/6 Arnaud Garcia <[email protected]>
> > >
> > > > Hello,
> > > >
> > > > I have a simple DataView where each row has some labels and
> textfields.
> > > > Each time the user enter in a textfield I would like to highlight the
> > > > selected row. (The idea is to adapt the wicket stuff example
> > > (OIRPage.java)
> > > > with an AjaxFormComponentUpdatingBehavior("onfocus") instead of a
> > simple
> > > > Link)
> > > >
> > > >
> > > > The example in wicket stuff
> > > > (
> > > >
> > >
> >
> http://wicketstuff.org/wicket/repeater/?wicket:bookmarkablePage=:org.apache.wicket.examples.repeater.OIRPage
> > > > )
> > > >
> > > > shows how to highlight the selected row using
> > ReuseIfModelsEqualStrategy
> > > > when the user click on a Link.
> > > >
> > > > Using the AjaxFormComponentUpdatingBehavior with the "onfocus" event
> I
> > > try
> > > > to simulate the Link click but it does not work...
> > > >
> > > > myTextField.add(new AjaxFormComponentUpdatingBehavior("onfocus") {
> > > >
> > > > @Override
> > > > protected void onUpdate(AjaxRequestTarget target)
> {
> > > > HighlitableDataItem<EtudiantAS> hitem =
> > > > (HighlitableDataItem<EtudiantAS>) item;
> > > > hitem.toggleHighlite();
> > > > // target.addComponent( ??? don' know what to
> > put
> > > > here, how to re-render the item)
> > > >
> > > > }
> > > > });
> > > >
> > > >
> > > > Well, any idea
> > > >
> > > > thanks
> > > >
> > > > Arnaud
> > > >
> > >
> >
>
>
>
> --
> | Daniela Valero
>
> "No hay vientos favorables para quien no sabe a donde quiere ir!
>