Image doesn't change because it's being cached by the browser.
To ensure that browser doesn't cache the image you need to append a
string to url that changes on every refresh.
Just like NonCachingImage does.
-Matej
On Dec 22, 2007 8:53 PM, Marco Santos <[EMAIL PROTECTED]> wrote:
>
> Hello there!
>
> I'm with problems refreshing an Image. On my web application i'm trying to
> refresh or change an Image that is on a Panel. On the panel there is a Image
> (it is rendered the first time) and a label. Outside the panel i have
> AjaxLink's (that are images too) that refresh the panel, and consequently
> the components on it, the image and the label. when the link is clicked, the
> label e refreshed with the new text, but the image still the same. The code
> is the following:
>
> /**
> *The Panel with the image to be refreshed:
> *(the label on the panel is freshed when the link is pressed.
> **/
> public class PhotoPanel extends Panel {
> /** Creates a new instance of PhotoPanel*/
> public PhotoPanel(String id, byte[] photoData, int size, Integer index)
> {
> super(id);
> setOutputMarkupId(true);
>
> MyImage mainPhoto = new MyImage("mainPhoto", photoData,
> size);//component that extends Image
> mainPhoto.setOutputMarkupId(true);
>
> Label label = new Label("index", "MYLABEL: " + index.toString());
>
> add(mainPhoto);
> add(label);
> }
> }
>
> /**
> * The AjaxLink's on a Parent panel that holds a panel with the links, and
> the panel with the image
> * to be refreshed
> **/
> private class PhotoSlideLink extends AjaxLink {
> private byte[] photoSlideData = null;
> Integer index = 0;
> public PhotoSlideLink(String id, byte[] photoSlideData ) {
> super(id);
> this.photoSlideData = photoSlideData ;
>
> MyImage photoSlide = new MyImage("photoSlide", photoSlideData ,
> 100);
> add(photoSlide );
> }
>
> @Override
> public void onClick(AjaxRequestTarget ajaxRequestTarget) {
> Panel newMainPhotoPanel = new PhotoPanel("mainPhotoPanel",
> photoSlideData , MAIN_PHOTO_SIZE, index++);
> newMainPhotoPanel .setOutputMarkupId(true);
>
> /*the first PhotoPanel created when the page was loaded*/
> mainPhotoPanel.replaceWith(newMainPhotoPanel);
> mainPhotoPanel= newMainPhotoPanel ;
>
> ajaxRequestTarget.addComponent(newMainPhotoPanel);
> }
> }
>
> Does any one know why refreshing the panel, the label change, but not the
> image? Am i forgetting to do something?
>
> Thanks a lot
> --
> View this message in context:
> http://www.nabble.com/Problems-Refreshin-a-Image-from-AjaxLink-tp14472713p14472713.html
> Sent from the Wicket - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]