The ajax stuff is firing (as I can see in the ajax debug window) but the panel does not get updated.
I know I'm getting the id from the drop down and the ajax bit itself is fine as I can get the value of the drop down and append it to a test label on the form that's used to store the dropdown details. I think it's mostly my lack of understanding of what actually fires with the ajax call, as I need to be able to refresh the values from the database. Should I be creating a Model overriding the setObject to do this? wicket user wrote: > > Hi Andrew, > > So what's actually happening? Anything? Exceptions or does the image just > stay the same? > > > > On 05/12/2007, Andrew Moore <[EMAIL PROTECTED]> wrote: >> >> >> Hi, >> I've got a page, which includes a drop down choice box, and a panel (with >> a >> list of images). >> >> The drop down box holds an id (which ties back to a list of images), what >> I'm wanting to be able to do is that if the user changes the drop down >> choice, the panel refreshes via ajax with the new images. >> >> Here's a few snippets of code: >> >> >> ------------------------------------------------------------------------------------------------- >> //insert the image preview panel >> final ImagePreviewPanel imagePreviewPanel = new >> ImagePreviewPanel("imagePreviewPanel", generalPage.getImageCollectionId >> ()); >> imagePreviewPanel.setOutputMarkupId(true); >> form.add(imagePreviewPanel); >> form.setOutputMarkupId(true); >> >> //add the OnChange for the ajax call >> OnChangeAjaxBehavior onChangeAjaxBehavior = new OnChangeAjaxBehavior(){ >> protected void onUpdate(AjaxRequestTarget target) { >> FormComponent fc = getFormComponent(); >> fc.getForm(); >> GeneralPage aGeneralPage = (GeneralPage) >> fc.getForm().getModelObject(); >> //get the drop down image collection id >> if (aGeneralPage.getImageCollectionOption() != null){ >> String keyValue = >> aGeneralPage.getImageCollectionOption().getKey(); >> >> imagePreviewPanel.setImageCollectionId(new >> Long(aGeneralPage.getImageCollectionOption().getKey())); >> } >> target.addComponent(imagePreviewPanel); >> } >> }; >> >> >> ------------------------------------------------------------------------------------------------- >> >> Then I've got the panel (which I've cut down on the details here to make >> it >> a bit easier to understand) >> >> >> ------------------------------------------------------------------------------------------------- >> public class ImagePreviewPanel extends Panel >> { >> private Long imageCollectionId; >> private String galleryCounterText = ""; >> private List imageList = new ArrayList(); >> >> public ImagePreviewPanel(final String componentId, Long >> anImageCollectionId){ >> super(componentId); >> //set up the instance variable from the constructor >> setImageCollectionId(anImageCollectionId); >> >> //now add the image previews >> //first get the images if there are any >> ImageCollection imageCollection = >> imageCollectionDao.findByImageCollectionId(imageCollectionId); >> >> WebMarkupContainer dataImagecontainer = new >> WebMarkupContainer("dataimage"); >> dataImagecontainer.setOutputMarkupId(true); >> add(dataImagecontainer); >> >> //display the total number of images in the list >> galleryCounterText = imageCollection.getImages().size(); >> add(new Label("galleryCounter",new PropertyModel(this, >> "galleryCounterText")).setOutputMarkupId(true)); >> >> //get the collection of images from the imageCollection >> object >> imageList = imageCollection.getImages(); >> >> final PageableListView imageView; >> dataImagecontainer.add(imageView = new >> PageableListView("galleryList", new >> CompoundPropertyModel(imageList), 20){ >> public void populateItem(final ListItem >> listItem){ >> final Image image = >> (Image)listItem.getModelObject(); >> >> //set up default image element >> description >> String imageElementDescription = new >> StringResourceModel("noImageElementDescription", this, null).getString(); >> >> //set up image element description if a >> better one exists >> StaticImage staticImage = new >> StaticImage("previewImage", >> image.getImageHref()); >> staticImage.setOutputMarkupId(true); >> listItem.add(staticImage); >> } >> }); >> imageView.setOutputMarkupId(true); >> } >> >> >> public Long getImageCollectionId() { >> return imageCollectionId; >> } >> >> public void setImageCollectionId(Long imageCollectionId) { >> this.imageCollectionId = imageCollectionId; >> } >> } >> >> >> >> >> >> ------------------------------------------------------------------------------------------------- >> The only thing is, don't feel like I've got my head completely around the >> wicket models and I'm having trouble working out what I need to do to the >> page and panel to get the panel to refresh via ajax. >> >> Sorry for the amount of code, but it's the only way I think to try and >> describe what I've currently got. >> Thanks >> Andrew >> -- >> View this message in context: >> http://www.nabble.com/Using-ajax-to-update-a-panel-tf4949239.html#a14170394 >> Sent from the Wicket - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > -- View this message in context: http://www.nabble.com/Using-ajax-to-update-a-panel-tf4949239.html#a14171495 Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]